我试图从Swift的另一个类中调用一个函数,而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
}
}
在另一个类中,我添加了(post):
@objc func clickOnButton(button: UIButton) {
NotificationCenter.default.post(name: NSNotification.Name("callToggleSideMenu"), object: nil)
}
一切似乎都很好,但我不知道为什么它不起作用。我在stackoverflow中看到了很多相同的问题,但是没有答案解决了我的问题。
答案 0 :(得分:1)
功能定义不正确。应该是:
@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)