Лучший способ обновить badgeValue UITabBarController из UIView

У меня есть tabBarController, настроенный в AppDelegate, и у вас есть несколько UIViewControllers с Nav Controllers. В одном из элементов TabBar после того, как я нажал несколько UIViews, я хочу обновить элемент badgeValue другого элемента TabBar.

Каков наилучший способ сделать это? Единственный способ, которым я действительно могу думать, это NSNotification и одноэлементное хранилище для этой ценности, но, похоже, много работы для чего-то простого, и я понятия не имею о NSNotifications.

У меня было дикое предположение о чем-то вроде super.tabBarController.otherView.tabBarItem.badgeValue = @ "1" (поскольку я установил, какая вкладка выбрана аналогичным образом), но я не удивлен, что это не работает.

Спасибо

Ответ 1

Спасибо alku83, который указал мне в правильном направлении код:

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

Ответ 2

Я использую Xcode 4.5 со Storiesboards и iOS 6, поэтому ответ, возможно, изменился с момента его первоначальной публикации.

Сначала вам нужно получить доступ к контроллеру панели табуляции, как это:

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

Затем вы можете установить значок так:

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

Ответ 3

У меня нет кода под рукой прямо сейчас, но он должен быть чем-то более похож на

...otherViewController.tabBarItem.badgeValue = 1;