我正在从UITabBarController
中的第一个viewController发送通知到UITabBarController
中的第二个viewController,但第二个viewController似乎没有观察或听取通知,直到我打开它....所以基本上我必须打开第二个viewController订阅通知回到第一个发送它....如何解决这个问题,使通知到达secondViewController而不必打开它订阅
在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)
在最好的情况下,这应该工作。