2011-08-23 59 views
4

我有其viewDidLoad方法調用becomeFirstResponder上的文本框(電子郵件)包含其相關聯的視圖內的視圖控制器:becomeFirstResponder未擊發

-(void) viewDidLoad { 
    [email becomeFirstResponder]; 
} 

此視圖控制器由推到導航控制器的堆棧加載。上面的代碼第一次很好用。

但是,後來在應用程序中,當我想要返回到此視圖控制器時,鍵盤不會自動出現(這是使用popToViewController:animated時)。相反,用戶必須手動將焦點設置爲文本字段以使鍵盤出現...我的猜測是在popToViewController之後沒有調用viewDidLoad:animated已經加載了相關的視圖控制器?

如何解決此問題?

回答

3

試着把它放在viewWillAppear中。 viewDidLoad通常只會運行一次,除非您另有特別說明。

- (void)viewWillAppear:(BOOL)animated { 

      [email becomeFirstResponder]; 

} 
4

viewDidLoad僅在第一次被調用。當您希望每次出現視圖時都運行某個東西時,請使用viewWillAppear

相關問題