订阅NotificationCenter而不打开ViewController

问题描述 投票:1回答:1

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

ios swift nsnotificationcenter
1个回答
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)

在最好的情况下,这应该工作。

© www.soinside.com 2019 - 2024. All rights reserved.