13

AppDelegateにtabBarControllerを設定し、NavControllerを備えたUIViewControllerをいくつか持っています。TabBarアイテムの1つで、いくつかのUIViewをプッシュした後、別のTabBarアイテムのbadgeValueアイテムを更新したいと思います。

これを行うための最良の方法は何ですか?私が本当に考えることができる唯一の方法は、NSNotificationと値のシングルトンストレージですが、単純なものでは多くの作業が必要なようで、NSNotificationsについてはわかりません。

私はsuper.tabBarController.otherView.tabBarItem.badgeValue=@ "1"のようなものを大げさに推測しました(どのタブが同様の方法で選択されるかを設定したので)が、これが機能しないのは驚きではありません。

ありがとう

4

3 に答える 3

38

コードを正しい方向に向けてくれたalku83に感謝します:

[[super.tabBarController.viewControllers objectAtIndex:2] tabBarItem].badgeValue = @"1";
于 2010-05-18T07:55:35.257 に答える
7

ストーリーボードと iOS 6 で Xcode 4.5 を使用しているため、最初に投稿されてから回答が変更されている可能性があります。

まず、次のようにタブ バー コントローラーにアクセスする必要があります。

UITabBarController *tabController = (UITabBarController *)self.window.rootViewController;

次に、バッジを次のように設定できます。

[[tabController.viewControllers objectAtIndex:1] tabBarItem].badgeValue = @"New!";
于 2012-09-29T15:31:20.297 に答える
0

私は今手元にコードを持っていませんが、もっと似ているはずです

...otherViewController.tabBarItem.badgeValue = 1;
于 2010-05-18T03:36:46.003 に答える