アプリケーションデリゲートで NavigationController を作成し、次のコードを使用してプログラムでカスタムボタンを追加しています。
self.navCntrl = [[UINavigationController alloc]initWithRootViewController:self.viewController];
// -- Adding INFO button to Navigation bar --
UIBarButtonItem *infoButton = [[UIBarButtonItem alloc]
initWithTitle:@"i"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(showInfo)];
self.navCntrl.topViewController.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:infoButton, nil];
self.window.rootViewController = self.navCntrl;
しかし、問題は、2 番目のページを navigationController にプッシュすると、キャンセル ボタンがナビゲーション バーに表示されないことです。最初のページに戻ると、キャンセル ボタンがあります。そのため、どうやらボタンは最初のビューにのみ追加されます。
これに対する 1 つの解決策は、上記のカスタム ボタンをすべてのビュー コントローラーに繰り返し追加することです (コードをコピーして貼り付けます)。同じナビゲーションコントローラーが使用されているため、他の方法があるに違いないと思います。あるとすれば何ですか?
前もって感謝します