我有一个视图控制器,其viewDidLoad方法在其关联视图中包含的文本字段(电子邮件)上调用becomeFirstResponder:
-(void) viewDidLoad {
[email becomeFirstResponder];
}
通过将视图控制器推入导航控制器的堆栈来加载该视图控制器。上面的代码第一次很有用。
但是,稍后在应用程序中,当我想返回到此视图控制器时,键盘不会自动出现(这是使用popToViewController:动画时)。相反,用户必须手动将焦点设置为文本字段才能显示键盘...我的猜测是在popToViewController:animated加载了相关的视图控制器之后没有调用viewDidLoad?
如何解决此问题?
答案 0 :(得分:4)
viewDidLoad
仅在第一次调用时才会被调用。如果希望每次出现视图时都要运行,请使用viewWillAppear
。
答案 1 :(得分:3)
尝试将其放入viewWillAppear中。 viewDidLoad通常只运行一次,除非你特别说明。
- (void)viewWillAppear:(BOOL)animated {
[email becomeFirstResponder];
}