私はナビゲーションコントローラとそのビューコントローラを持っている:UINavigationBarのタイトルと右ボタン
-NavigationController1
--MyViewController
をし、同様に私は別のナビゲーションコントローラを持っている - NavigationController2を。 NavController2にプッシュされた別のView Controller - ViewController2からMyViewControllerを呼び出したいとします。 -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];
}
問題は:NavController2にプッシュされたViewController2からMyViewControllerを呼び出すと、NavigationController1からMyViewControllerを呼び出した後、ナビゲーションバーのタイトルと完了ボタンが追加されません。しかし、MyViewControllerのviewWillAppearメソッドとtextFieldDidBeginEditingメソッドが呼び出されています。
問題は何ですか?どのように修正できますか?
ありがとうございました。
navコントローラの階層をより詳しく説明できますか? –
アドレス帳に似たアプリケーションです。私は(私はいくつかの本を持っている)編集するアドレス帳を選択することができますまた、私はアクティブなアドレス帳に新しい連絡先を追加することができますからタブを選択することができますタブバーがあります。どちらのタブもナビゲーションコントローラです。 また、新しい連絡先をアドレス帳に追加するには、最初のタブに移動し、編集する特定のアドレス帳を選択し、そこから新しい連絡先を追加することもできます。 –