В подклассе 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, не работают; Я также понял, что в подвидных или программно созданных представлениях эти методы не вызываются; но это не применяется в случае, и я также удивляюсь, почему один из этих методов "жизненного цикла" вызван, а другой нет.
Любая идея? Спасибо!