2009-12-22 23 views
19

使用TabBar徽章值我有一個UITabBarControlleriphone碼 - 更改從的viewController的

如何創建從我viewController /更新的TabBar項目的badge value

tabBar項目在ib中創建。

我使用IBOutlet UITabBar *tabBar將tabBar項目連接到控制器。

謝謝。

回答

69

如果您的視圖 - 控制已有與其標籤欄控制器助理,你可以深入到標籤欄項目,並設置它的徽章,這樣的:

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

其中的tabIndex是選項卡的索引要設置的項目,並且badgeValueString是要在選項卡上設置的字符串值。

+0

有沒有更好的方式來做到這一點,而不使用tabIndex?由於視圖控制器是在觸摸特定的標籤欄項目後加載的,因此可能有一種方法... – 2011-08-02 23:31:43

+0

謝謝!這就像一個魅力! – 2014-12-31 09:52:56

1
 int indexICareAbout = 2; 
     NSString *badgeValue = @"10"; 

     [[[[[self tabBarController] viewControllers] 
     objectAtIndex: indexICareAbout] tabBarItem] setBadgeValue:badgeValue]; 
27

使用視圖控制器的tabBarItem實例直接訪問標籤欄項目,而不是向下鑽取。

[self.tabBarItem setBadgeValue:badgeValue]; 
+0

+1更簡單的解決方案,當更新另一個選項卡的徽章值時,Matt的解決方案運行良好,但此解決方案在更新當前選項卡值時最容易。 – 2011-11-28 19:12:20

+26

提示:如果你的視圖控制器在導航控制器中,你必須使用'[self.navigationController.tabBarItem setBadgeValue:badgeValue];' – 2012-10-23 13:07:49

+3

對於那些正在尋找的,在這裏如何刪除它'[self.tabBarItem setBadgeValue:零];' – 2013-05-29 18:47:29

2

示例代碼如果有三個標籤,在你的應用FirstSecondThird

標籤指數從0

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

開始如果想要在Second標籤頁中設置徽章值5

所以通過1(第二選項卡的選項卡索引),用於objectAtIndex:1並通過5(徽章值)setBadgeValue:@"5"

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

而且可以清除/去除傳遞nil爲spacific標籤徽章值

相關問題