NsNotificationCenter无法正常工作

时间:2017-06-15 12:23:17

标签: swift

实际上我是新手,我被困在这里,任何人都可以解决这个问题。 actOnSpecialNotification Func没有在ViewController.swift中调用fireNotification

  

在ViewController.swift中

 func fireNotification() -> Void {
NotificationCenter.default.addObserver(self, selector: 
 #selector(vikas.updateNotificationSentLabel), name: 
 NSNotification.Name(rawValue: mySpecialNotificationKey), object: nil)
}
func updateNotificationSentLabel() {
    print("sent")
}
  在SecondVC.swift中

 override func viewDidLoad() {
    super.viewDidLoad()

 NotificationCenter.default.addObserver(self, selector: 
 #selector(ViewController.actOnSpecialNotification), name: 
 NSNotification.Name(rawValue: mySpecialNotificationKey), object: nil)
}
func actOnSpecialNotification() {
    print("listen")
}

1 个答案:

答案 0 :(得分:1)

首先将Observer添加到FirstViewConroller。

FirstViewConroller

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(YourClassName.methodOfReceivedNotification(_:)), name:”test”, object: nil)

现在,在相同的ViewController中添加相关的选择器方法,一旦通知被触发,将调用它。

func methodOfReceivedNotification(notification: Notification){
        //Take Action on Notification
 }

现在,您可以使用以下行来触发通知,这将调用驻留在FirstViewController中的上述方法

SecondViewController

NSNotificationCenter.defaultCenter().postNotificationName(“test”, object: nil)