【发布时间】:2017-10-02 13:12:47
【问题描述】:
当我在查看如何从另一个视图中调用函数时,我发现 NotificationCenter 是一个很好的解决方案,所以我尝试像这样使用它:
在我想调用函数的主视图(ViewController)中,我放了这个:
NotificationCenter.default.addObserver(
self,
selector: #selector(ViewController.loyalty),
name: NSNotification.Name("loyalty"),
object: nil)
在我调用 self.dismiss(animated: true, completion: nil) 之前的第二个视图中,我调用它来触发观察:
NotificationCenter.default.post(name: NSNotification.Name("loyalty"), object: nil)
最后在 swift 4 更新后,我的函数 loyalty 在 func 之前有 @objc,它是这样的:
@objc func loyalty(){
}
PS 我也试过 NSNotification.Name(rawValue: "loyalty")
也许我忘了做某事?
提前致谢!
编辑:
在我忘记删除一些数组之后,该函数正在执行,这就是我认为它不起作用的原因。
【问题讨论】:
-
也许你正在删除
viewWillDisappear中的观察者。 -
@the4kman 感谢您的评论,但我没有删除它(我检查确定)
-
您是否要在代码中的其他位置删除观察者?
-
@the4kman 不,我用 cmd+f 搜索它以确保
-
@the4kman 该函数毕竟正在执行,但我忘记擦除我的数组以获得正确的结果。 (我在函数开始时通过打印发现了它)。很抱歉浪费您的时间...
标签: ios swift swift4 observers nsnotifications