小编Sve*_*ffe的帖子

UIViewController:调用viewWillAppear,而不是viewDidAppear

在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;
}
Run Code Online (Sandbox Code Playgroud)

NIB是使用Interface Builder创建的.导航控制器通过pushViewController推送相应的视图控制器对象.

意图行为是在文本字段中显示默认文本条目,以选择整个文本并将文本字段设置为第一响应者.[编辑:我注意到选择所有做出第一响应者没有意义,因为选择会消失; 不过,我想知道为什么这些方法的行为如下所述.

但是,在调用方法viewDidLoad和viewWillAppear时,不会调用viewDidAppear方法.谁能告诉我为什么?我在网上找到的大多数问题和这里处理viewWillAppear/viewDidAppear都没有用; 我也明白,在子视图或以编程方式创建的视图中,这些方法不会被引发; 但是这不适用于案例,我也想知道为什么这些"生命周期"方法中的一个被引发而另一个没有.

任何的想法?谢谢!

iphone lifecycle uiviewcontroller

16
推荐指数
2
解决办法
8913
查看次数

标签 统计

iphone ×1

lifecycle ×1

uiviewcontroller ×1