通知中心不工作。观察者未被调用
Notification Center not working. The observer is not being called
我正在尝试从 Swift 中的另一个 class 调用一个函数,而 NotificationCenter
是一个选项,所以我从 addObserver
开始。
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(toggleSideMenu), name: NSNotification.Name("callToggleSideMenu"), object: nil)
}
@objc func toggleSideMenu(){
if isMenuOpen {
sideContainer.constant = -260
} else {
sideContainer.constant = 0
}
}
在另一个 class 中,我添加了 (post):
@objc func clickOnButton(button: UIButton) {
NotificationCenter.default.post(name: NSNotification.Name("callToggleSideMenu"), object: nil)
}
一切似乎都很好,但我不知道为什么它不起作用。我在 Whosebug 中看到了很多相同的问题,但没有答案解决了我的问题。
函数定义不正确。应该是:
@objc func toggleSideMenu(_ notification: Notification){
if isMenuOpen {
sideContainer.constant = -260
} else {
sideContainer.constant = 0
}
}
使用以下方式调用它:
NotificationCenter.default.addObserver(self, selector: #selector(toggleSideMenu(_:)), name: NSNotification.Name("callToggleSideMenu"), object: nil)
我正在尝试从 Swift 中的另一个 class 调用一个函数,而 NotificationCenter
是一个选项,所以我从 addObserver
开始。
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(toggleSideMenu), name: NSNotification.Name("callToggleSideMenu"), object: nil)
}
@objc func toggleSideMenu(){
if isMenuOpen {
sideContainer.constant = -260
} else {
sideContainer.constant = 0
}
}
在另一个 class 中,我添加了 (post):
@objc func clickOnButton(button: UIButton) {
NotificationCenter.default.post(name: NSNotification.Name("callToggleSideMenu"), object: nil)
}
一切似乎都很好,但我不知道为什么它不起作用。我在 Whosebug 中看到了很多相同的问题,但没有答案解决了我的问题。
函数定义不正确。应该是:
@objc func toggleSideMenu(_ notification: Notification){
if isMenuOpen {
sideContainer.constant = -260
} else {
sideContainer.constant = 0
}
}
使用以下方式调用它:
NotificationCenter.default.addObserver(self, selector: #selector(toggleSideMenu(_:)), name: NSNotification.Name("callToggleSideMenu"), object: nil)