gpt4 book ai didi

ios - Swift NSNotification 不适用于所有 ViewController

转载 作者:行者123 更新时间:2023-11-28 07:09:43 26 4
gpt4 key购买 nike

在这个导航 Controller 应用程序中,我在 TAN ViewController 中有一个按钮,当点击它时会发布一个 NSNotification。
Project Storyboard

-蓝色(根)ViewController 和绿色 ViewController 都在监听同一个通知
- Blue ViewController 成功响应通知到达
-Green ViewController 没有成功响应它。它甚至没有看到它到达(即使我使用与 Blue ViewController 的代码完全相同的代码来注册以监听此通知。)
-在这两种情况下,我都在注册以收听 viewDidLoad 中的通知:

 override func viewDidLoad() {
super.viewDidLoad()

// Set Up Listening to Notification:
let notificationCenter = NSNotificationCenter.defaultCenter()
notificationCenter.addObserver(self, selector: "handleNotification:", name:"User Specs Notification", object: nil)
}

在我访问 TAN ViewController 并从那里发布通知之前,我还确保访问 GREEN ViewController - 它会自动触发其 viewDidLoad 并执行通知监听代码。但同样,当我返回到 Blue/Root ViewController 时,我看到它已正确响应通知的到达,但是当我随后转到 Green ViewController 时 - 没有任何改变。

有什么想法吗?
我应该在 viewDidLoad 以外的地方注册以收听通知吗?如果有,在哪里?为什么它仍然适用于 Blue/Root ViewController - 我正在viewDidLoad 中注册 - 但不是在 Green ViewController 中?这哪里有逻辑?

最佳答案

当您返回到蓝色 VC 时,绿色 View Controller 将被释放。所以它不在那里接收通知。

关于ios - Swift NSNotification 不适用于所有 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28930995/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com