私は約12ビューのアプリを構築しました。NavigationBar の右上には、アプリ全体でまったく同じ機能を持つ UIBarButton が必要です。バッジが付いたカスタム ボタンが表示されます。
私はrightBarButtonItemをTableViewControllersに渡し、それはうまく機能します。しかし、TabBar をタップすると、カスタム ボタンが消えることがあります。おそらく私の解決策は悪いです。AppDelegate からカスタム ボタンを設定しようとしましたが、TabBar に関連するすべての ViewController で rightBarButtonItem に到達する方法がわかりません。
このようなことを試しましたが、ログには常に nil が表示されます。
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
NSLog(@"item %@", self.tabController.selectedViewController.navigationItem.rightBarButtonItem);
NSLog(@"item %@", self.tabController.selectedViewController.navigationItem.rightBarButtonItems);
NSLog(@"item %@", self.tabController.selectedViewController.navigationController.navigationItem.rightBarButtonItems);
//self.tabController.selectedViewController.navigationItem.rightBarButtonItem =
[self switchTabBarImage:self.tabController.selectedIndex];
}
「グローバルな」rightBarButtonItemのようなものを実現するための最良のアプローチは何ですか? AppDelegate は適切な場所ですか?