我有一个导航控制器,其中有一个视图控制器:
-NavigationController1
--MyViewController
而且我还有另一个导航控制器——NavigationController2。我想从另一个视图控制器 - ViewController2 调用 MyViewController,它被推送到 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
这是 MyViewController 的 viewWillAppear 方法(被调用的那个):
- (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];
}
问题是:如果我从被推入 NavigationController2 的 ViewController2 调用 MyViewController,然后我从它自己的 NavigationController1 调用 MyViewController,则不会添加导航栏的标题和完成按钮。但是,正在调用 MyViewController 的 viewWillAppear 和 textFieldDidBeginEditing 方法。
有什么问题,我该如何解决?
谢谢。