2015-06-18 70 views
1

我有兩個UIViewControllers,模式上提出了另一個。第一個控制器定位在橫向,模態視圖以縱向顯示。在解散視圖之前我應該​​解僱鍵盤嗎?

當解散模態視圖時,視圖動畫顯示下面的橫向視圖。如果此時鍵盤在模式視圖中可見,它會突然將其自身附加到屏幕的左側或右側,以匹配即將成爲活動視圖控制器的方向。

有沒有辦法讓鍵盤消失在與消失的viewController相同的方向?或者我應該在解僱模態視圖控制器之前解僱鍵盤?在那種情況下,最好的方法是什麼?

我確實有一個行動,當用戶點擊「關閉」。我可以在那裏檢查是否有任何對象是firstResponder,並且在解散之前啓動一個約0.4秒的計時器。但是它顯然會產生一種不會感覺到自然的延遲。我寧願讓方法鍵盤保持與解散視圖相同的方向。

這是發生:

Keyboard dismissing wrong

回答

1

我認爲最好的做法是解僱你的模態視圖控制器之前取消鍵盤。鍵盤顯示在您的內容上,應先移除鍵盤,然後再移除視圖層次結構中的其他項目。

+0

啊是的。我想我必須'暫停'解除模態視圖才能等待鍵盤退出視圖,而只需在'[self dismiss ...]之前加上'[textField resignFirstResponder]';'訣竅。現在在解僱之前就解僱了。 – Sti