2011-08-30 51 views
0

我有一個UIPickerView作爲inputView的自定義UIControl子類。輕擊控件時,它會調用becomeFirstResponder,並且選取器視圖會自動從屏幕底部向上滑動,如系統鍵盤。這非常棒!如何獲得正確的動畫:從UINavigationController的導航欄中輸入視圖?

問題是我正在使用自定義控件作爲UINavigationItem的titleView。它的功能正常,但如果視圖控制器從導航控制器堆棧彈出,而選取器視圖可見,則動畫是不可靠的。

我希望發生什麼:

  • 一切都在同一時間屏幕推偏右

實際發生的:

  • 第一,背景視圖和導航欄滑出屏幕,選取器保持原位
  • 然後,它們消失後,選取器滑動o在右邊也是

當我在視圖控制器的主視圖中使用自定義控件時,它就像標準鍵盤一樣使用動畫。所以看起來好像這是一個「來自」導航欄的功能,它與內部視圖分開進行動畫製作。

我該如何解決這個問題,以便inputView可以滑出其餘的內容?

回答

2

原來,這可以通過在UINavigationController的視圖上調用endEditing:來解決。換句話說,一個視圖控制器內:

[self.navigationController.view endEditing:YES]; 

這會導致輸入視圖滑下而視圖的其餘部分滑落到右側。與系統鍵盤不完全相同,但不是很明顯。