在第一个控制器中,内部发送操作按钮添加通知发布方法
let notificationhide = Notification.Name("hideLiveBtn")
NotificationCenter.default.post(name: notificationhide, object: nil)
第二个摄像头控制器调用通知在视图中添加观察者方法didload
NotificationCenter.default.addObserver(self, selector:
#selector(self.hideliveBtn(notification:)), name: notificationhide, object: nil)
选择器功能:
@objc func hideliveBtn(notification : NSNotification){
btnLiveSettings.isHidden = true
}
保留断点以便为观察者添加观察者,但它不会调用hideliveBtn函数。
答案 0 :(得分:1)
请通过其他方式实施NSNotification中心。
第1步:
extension NSNotification.Name {
public static let hideLiveBtnNotificationKey = NSNotification.Name(rawValue: "hideLiveBtn")
}
第2步
在控制器的viewdidLoad()中
NotificationCenter.default.addObserver(self, selector: #selector(notificationReceived), name: .hideLiveBtnNotificationKey, object: nil)
第3步
选择器功能
@objc func hideliveBtn(notification : NSNotification){
btnLiveSettings.isHidden = true
}
第4步
override func viewWillDisappear(_ animated: Bool) {
NotificationCenter.default.removeObserver("hideLiveBtnNotificationKey")
}
答案 1 :(得分:1)
我检查了你的代码,并且完全正常工作。
class ViewController: UIViewController {
let notificationhide = Notification.Name("hideLiveBtn")
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector:#selector(self.hideliveBtn(notification:)), name: notificationhide, object: nil)
NotificationCenter.default.post(name: notificationhide, object: nil)
}
@objc func hideliveBtn(notification : NSNotification){
print("notification fired")
}
}