我想从我的appDelegate发布通知,以更新tabBarController的徽章编号。
因此在appDelegate中:
NSNotificationCenter.defaultCenter().postNotificationName("addBadge", object: nil)
在viewController中:
func addBadge () {
badgeNumber = badgeNumber + 1
var tabArray = self.tabBarController?.tabBar.items as NSArray!
var tabItem = tabArray.objectAtIndex(3) as UITabBarItem
tabItem.badgeValue = "\(badgeNumber)"
}
override func viewWillAppear(animated: Bool) {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "addBadge", name: "addBadge", object: nil)
}
它不起作用。
是否因为我要在其中触发addBadge函数的viewController未激活?
最佳答案
确定找到了解决方案,您必须在init中添加观察者:
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "addBadge", name: "addBadge", object: nil)
}
关于ios - 使用NSNotification更新tabBarItem徽章不起作用(Swift),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27998303/