I have a tabBarController set up in the AppDelegate and have a few UIViewControllers with Nav Controllers. In one of the TabBar items, after I have pushed a few UIViews I want to update the badgeValue item of a different TabBar item.
Whats the best way to do this? The only way I can really think is a NSNotification and a singleton storage for the value, but it seems a lot of work for something simple, that and I have no idea about NSNotifications.
I had a wild guess at something like super.tabBarController.otherView.tabBarItem.badgeValue = @"1" (as I set which tab is selected in a similar way) but I'm not surprised this doesn't work.
Thanks
Thanks to alku83 who pointed me in the right direction the code is:
[[super.tabBarController.viewControllers objectAtIndex:2] tabBarItem].badgeValue = @"1";
I'm using Xcode 4.5 with Storyboards and iOS 6, so the answer may have changed since it was originally posted.
First you have to access the Tab Bar Controller like this:
UITabBarController *tabController = (UITabBarController *)self.window.rootViewController;
Then you can set the badge like so:
[[tabController.viewControllers objectAtIndex:1] tabBarItem].badgeValue = @"New!";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With