次のコードで AppDelegate.m のバッジ値を変更できます。
UITabBarController *tabController = (UITabBarController *)self.window.rootViewController;
[[tabController.viewControllers objectAtIndex:0] tabBarItem].badgeValue = @"Badge";
tabBarViewController がウィンドウのルート ビュー コントローラーである場合のみ。
ただし、私の新しいプログラムでは、tabBarController はルート ビューではありません。
次のコードを試しました:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UITabBarController *tabController = (UITabBarController *)[storyboard instantiateViewControllerWithIdentifier:@"tabBarController"] ;
[[tabController.viewControllers objectAtIndex:0] tabBarItem].badgeValue = @"Badge";
それはうまくいきません。tabBarItem にはバッジが表示されません。
編集-
次のコードを追加して、tabController が作成されているかどうかを確認しました。答えは YES です。
if (tabController) {
NSLog(@"tabController has been created ");
}else {
NSLog(@"You have a null reference - The Object hasn't been created yet");
}
答えはイエスです。
2013-03-01 11:57:00.600 レポート[14854:907] タブコントローラーが作成されました
しかし、期待されるバッジはまだ表示されません。