構造は次のとおりです。UITabBarController内のすべてのナビゲーションビューコントローラにUIBarButtonItemを追加するプログラムで
- ビュー
- タブバーコントローラ
- ナビゲーションコントローラ
- ビューコントローラ
- ナビゲーションコントローラ
- ビューコントローラ
- ナビゲーションコントローラ
- ビューコントローラ
- ナビゲーションコントローラ
- ビューコントローラ
- ナビゲーションコントローラ
- ビューコントローラ
- ナビゲーションコントローラ
- ビューコントローラ
- ナビゲーションコントローラ
上記コントローラは、インターフェイスビルダーに初期化されています。
私がしようとしているのは、各ナビゲーションコントローラに正しくUIBarButtonItem
を追加するだけですが、成功しません。
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor clearColor];
self.view.opaque = NO;
self.tabBarController.view.frame = self.view.bounds;
NSArray *currentViewControllers = self.tabBarController.viewControllers;
NSMutableArray *updatedViewControllers = [NSMutableArray array];
for (int i=0; i<currentViewControllers.count; i++) {
UINavigationController *tempNav = [[UINavigationController alloc]init];
tempNav = [currentViewControllers objectAtIndex:i];
UIBarButtonItem *dismissButton = [[UIBarButtonItem alloc]
initWithTitle:@"Done"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(dismissLibraryBrowser)];
tempNav.navigationItem.rightBarButtonItem = dismissButton;
[updatedViewControllers addObject:tempNav];
[dismissButton release];
[tempNav release];
NSLog(@"Added controller number %d",i);
}
self.tabBarController.viewControllers = [NSArray arrayWithArray:updatedViewControllers];
[self.view addSubview:tabBarController.view];
}
コードがエラーなしで実行されますが、ボタンは表示されません。
は、ここで私が試したものです。私はここで何か誤解していると確信しています。いくつかの指導を感謝します。
タブ項目を選択しているときにナビゲーションコントローラの子ビューを確認しましたか... – iDroid
なぜそれをする必要がありますか?私は、ナビゲーションコントローラにのみボタンを追加しています。すべてがうまく表示され、ボタンだけが追加されません。 – sooper
私はあなたのコードからそれを見ます..まだ私は私のMACにはないので、Navigation Controllerの子ビューをログすると、ボタンアイテムがまだ存在しているかどうかを確認できます。 – iDroid