【发布时间】:2011-05-19 18:29:53
【问题描述】:
在 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;
}
NIB 是使用 Interface Builder 创建的。导航控制器通过pushViewController推送对应的视图控制器对象。
inteded 行为是在文本字段中显示默认文本条目,选择整个文本并将文本字段设置为第一响应者。 [编辑:我注意到选择所有和作为第一响应者是没有意义的,因为选择会消失;不过,我想知道为什么这些方法的行为如下所述。]
但是,在调用 viewDidLoad 和 viewWillAppear 方法时,没有调用 viewDidAppear 方法。 谁能告诉我为什么?我在网上找到的大多数问题都涉及 viewWillAppear/viewDidAppear 都不起作用;我还了解到,在子视图或以编程方式创建的视图中,不会调用这些方法;但这不适用于万一,我也想知道为什么这些“生命周期”方法中的一个被调用而另一个不被调用。
有什么想法吗?谢谢!
【问题讨论】:
标签: iphone uiviewcontroller lifecycle