订阅NotificationCenter而不打开ViewController

时间:2017-12-19 11:22:52

标签: ios swift nsnotificationcenter

我正在从UITabBarController中的第一个viewController发送通知到UITabBarController中的第二个viewController,但第二个viewController似乎没有观察或收听通知,直到我打开它....所以基本上我必须打开第二个viewController订阅通知回到第一个发送它....如何解决这个问题,使通知到达secondViewController而不必打开它订阅

1 个答案:

答案 0 :(得分:0)

在SecondViewController中创建通知接收函数

 @objc func notified(_ noti : Notification)  {
    print("Recieved fired noti")
}

制作UITabbarController的自定义课程。在viewDidLoad课程的Tabbarcontroller中写下这些行

let vc = self.viewControllers![1] as! SecondViewController
    NotificationCenter.default.addObserver(vc, selector: #selector(vc.notified(_:)), name: NSNotification.Name(rawValue: "NotificationSample"), object: nil)

此处我以索引1为例,将其替换为secondViewController中的tabbarController索引。

然后从您想要的任何地方发布您的通知,例如,来自FirstviewController

NotificationCenter.default.post(name: NSNotification.Name(rawValue: "NotificationSample"), object: nil)

在最好的情况下,这应该有效。