我想从我的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/

10-09 22:34