3

次のコードで 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] タブコントローラーが作成されました

しかし、期待されるバッジはまだ表示されません。

4

1 に答える 1

2

このコードを試してもらえますか Mr. Robert

       [[[[[self tabBarController] tabBar] items] objectAtIndex:0] setBadgeValue:[NSString stringWithFormat:@"%d", notificationCount ]];
于 2013-02-28T06:58:22.297 に答える