我有一個導航控制器,並在它的視圖控制器:UINavigationBar的標題和右按鈕
-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];
}
問題是:如果我從ViewController2中調用MyViewController並將其傳入NavigationController2,然後從其自己的NavigationController1調用MyViewController,則不會添加導航欄和完成按鈕的標題。然而,正在調用MyViewController的viewWillAppear和textFieldDidBeginEditing方法。
這是什麼問題,我該如何解決?
謝謝。
你能更詳細地解釋導航控制器的層次結構嗎? – 2009-06-05 20:03:14