从UIView更新UITabBarController的badgeValue的最佳方法

时间:2010-05-18 03:18:34

标签: iphone uiview uitabbarcontroller nsnotifications

我在AppDelegate中设置了tabBarController,并且有一些带有Nav Controllers的UIViewControllers。在其中一个TabBar项目中,在我推动了几个UIViews之后,我想要更新另一个TabBar项目的badgeValue项目。

这是最好的方法吗?我能想到的唯一方法就是NSNotification和单值存储的价值,但似乎很简单的事情,我不知道NSNotifications。

我对super.tabBarController.otherView.tabBarItem.badgeValue = @“1”这样的东西进行了疯狂的猜测(因为我设置了以类似的方式选择了哪个选项卡),但我并不感到惊讶,这不起作用。

由于

3 个答案:

答案 0 :(得分:36)

感谢alku83指出我正确的方向,代码是:

[[super.tabBarController.viewControllers objectAtIndex:2] tabBarItem].badgeValue = @"1";

答案 1 :(得分:6)

我正在使用Xcode 4.5与Storyboard和iOS 6,所以答案可能会在最初发布后发生变化。

首先,你必须像这样访问标签栏控制器:

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

然后您可以像这样设置徽章:

[[tabController.viewControllers objectAtIndex:1] tabBarItem].badgeValue = @"New!";

答案 2 :(得分:0)

我现在手边没有代码,但它应该更像是

...otherViewController.tabBarItem.badgeValue = 1;