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