У меня есть контроллер навигации и в нем контроллер вида:
-NavigationController1
--MyViewController
А также у меня есть еще один навигационный контроллер - NavigationController2.
Я хочу вызвать MyViewController из другого контроллера представления - ViewController2, который был помещен в NavigationController2.
-NavigationController2
--ViewController2
Я делаю это следующим образом:
@implementation ModifyDicVController
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.navigationItem.rightBarButtonItem = [ [ [UIBarButtonItem alloc]
initWithBarButtonSystemItem:
UIBarButtonSystemItemAdd target:self
action:@selector(add_clicked)] autorelease];
}
-(void) add_clicked
{
[navigationController pushViewController: addWordsVController animated: YES];
}
@end
А вот метод viewWillAppear MyViewController (тот, который вызывается):
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self setTitle: @"My title"];
}
Я добавляю кнопку «Готово» на панель навигации, когда пользователь начинает редактировать текстовое поле:
- (void) textFieldDidBeginEditing: (UITextField *) textField
{
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc]
initWithTitle: NSLocalizedString(@"button: done", @"")
style:UIBarButtonItemStyleDone
target:self
action:@selector(doneEditing)]
autorelease];
}
Проблема заключается в том, что если я вызываю MyViewController из ViewController2, который был помещен в NavigationController2, и после этого я вызываю MyViewController из его собственного NavigationController1, название панели навигации и кнопка «Готово» не добавляются. Однако методы viewWillAppear и textFieldDidBeginEditing в MyViewController вызываются.
В чем проблема и как ее исправить?
Спасибо.