在UIViewController的子类中,我有以下方法:
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// do something
myTextField.text = @"Default";
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// do something
[myTextField selectAll:self];
[myTextField becomeFirstResponder];
}
- (void)viewDidLoad {
[super viewDidLoad];
// do something
myTextField.delegate = self;
}
使用Interface Builder创建了NIB。相应的视图控制器对象通过pushViewController推送导航控制器。
预期的行为是在文本字段中显示默认文本条目,选择整个文本并将文本字段设置为第一响应者。[编辑:我注意到选择全部和使第一响应者没有意义,因为选择会消失;不过,我想知道为什么下面描述的方法会像这样表现。]
然而,虽然viewDidLoad和viewWillAppear方法被调用,但viewDidAppear方法未被调用。有人能告诉我为什么吗?我在网上和这里找到的大多数问题都涉及到viewWillAppear/viewDidAppear都无法工作;我还了解到,在子视图或以编程方式创建的视图中,这些方法不会被调用;但在此情况下不适用,我也想知道为什么其中一个“生命周期”方法被调用而另一个没有。
有任何想法吗?谢谢!