В подклассе 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.
Предполагаемое поведение - показать текстовую запись по умолчанию в текстовом поле, выделить весь текст и установить текстовое поле в качестве первого респондента.[Edit: я заметил, что выбор всех и для создания первого респондента не имеет смысла, так как выбор исчезнет; Тем не менее, мне интересно, почему методы ведут себя так, как описано ниже.]
Однако , пока вызываются методы viewDidLoad и viewWillAppear, метод viewDidAppear не вызывается. Кто-нибудь может мне сказать, почему? Большинство вопросов, которые я нашел в Интернете и здесь касаются как viewWillAppear, так и viewDidAppear, не работают; Я также понял, что в подпредставлениях или программно созданных представлениях эти методы не вызываются; но это не относится к случаю, и мне также интересно, почему один из этих методов "жизненного цикла" вызывается, а другой нет.
Есть идеи? Спасибо!