Iphone code - изменить значение значка tabBar из viewController

У меня есть UITabBarController,

Как я могу создать/обновить badge value элемента tabBar из моего viewController?

Элемент tabBar, созданный в ib.

Я подключил элемент tabBar к контроллеру с помощью IBOutlet UITabBar *tabBar.

спасибо.

5 ответов

Если ваш контроллер представления уже имеет связанный с ним контроллер панели вкладок, вы можете просто перейти к элементу панели вкладок и установить его значок, например:

[[[[[self tabBarController] tabBar] items] 
 objectAtIndex:tabIndex] setBadgeValue:badgeValueString];

где tabIndex - это индекс элемента табуляции, который вы хотите установить, и badgeValueString - это строковое значение, которое вы хотите установить на вкладке.


Используйте экземпляр tabBarItem вашего контроллера представлений, чтобы получить доступ к элементу панели вкладок напрямую, а не сверлить его.

[self.tabBarItem setBadgeValue:badgeValue];


Если в вашем приложении First, Second и Third

есть три вкладки,

Индекс вкладки начинается с 0

First tab index 0
Second tab index 1
Third tab index 2

Если вы хотите установить значение значка 5 в Second вкладке

Итак, передайте 1 (индекс вкладки второй вкладки) для objectAtIndex:1 и передайте 5 (значение значка) для setBadgeValue:@"5"

[[self.tabBarController.tabBar.items objectAtIndex:1] setBadgeValue:@"5"];

Также вы можете удалить/удалить значение значка nil для промежуточной вкладки

[[self.tabBarController.tabBar.items objectAtIndex:1] setBadgeValue:nil];


int indexICareAbout = 2;
 NSString *badgeValue = @"10";
 [[[[[self tabBarController] viewControllers]
 objectAtIndex: indexICareAbout] tabBarItem] setBadgeValue:badgeValue];


Вот пример кода для него вкладка с знаковым значением

licensed under cc by-sa 3.0 with attribution.