2010-05-18 1 views
10

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

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

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

Благодаря

ответ

34

Благодаря alku83, который указал мне в правильном направлении код:

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

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

...otherViewController.tabBarItem.badgeValue = 1; 
+0

Правда, я изменил свой первоначальный вопрос, Ждут» t помогите исправить это, хотя :( – Rudiger

+0

Убедитесь, что вы присвоите значку целочисленное значение, а не значение NSString. Если это все еще не работает, вы можете создать IBOutlet для TabBarItem и ссылаться на него таким образом. –

+0

Я действительно установил он в AppDelegate, чтобы убедиться, что он работает, и он accep ts строка. Я не уверен в IBOutlet, поскольку я добавляю все к nib через код, IBOutlet будет работать, только если его настройка в nib – Rudiger

6

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

Во-первых, вы должны получить доступ к Bar Controller Tab, как это:

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^