在Swift中更新未select的tabBarItem的徽章

我有一个导航控制器与4标签栏项目。 每个人都有一个导航控制器里面。 我希望能够更改第四个标签栏的徽章号码,当我得到推送通知,无论是在什么样的视图或制表符我需要使用自动布局,所以我不能使用任何编程解决scheme内的应用程序委托。 我从一个单一的视图模板开始了这个项目。

我试图去所需的选项卡,更改徽章值,然后回来,但它当然不起作用。 tabBarController似乎只有对当前标签栏项的引用。

var current = self.tabBarController?.selectedIndex self.tabBarController?.selectedIndex = 3 self.navigationController?.tabBarItem.badgeValue = "34" self.tabBarController?.selectedIndex = current! 

无需select该索引来更新徽章值。 采取一个标签栏项目的数组。 在要更新的索引处select项目,然后设置徽章值。 看下面我已经做了第四个标签栏项目。

 let tabArray = self.tabBarController?.tabBar.items as NSArray! let tabItem = tabArray.objectAtIndex(3) as! UITabBarItem tabItem.badgeValue = "34" 

短:

 let tabItem = self.tabBarController?.tabBar.items![3] let tabItem.badgeValue = "34" 
 extension UITabBarController { func increaseBadge(indexOfTab: Int, num: String) { let tabItem = tabBar.items![indexOfTab] tabItem.badgeValue = num } } 

你可以这样调用它:

 self.tabBarController?.increaseBadge(indexOfTab: 3, num: "34")