我使用UINavigationController
来控制视图控制器的更改。假设我逐个推送A1和A2。 A1和A2都是我的自定义视图控制器A的实例。
A已注册通知,并在收到通知时刷新UI。
我的问题是:
当我在A2中发布通知时,A2可以接收它
但是,当我弹出A1时,A1没有变化。
那么任何人都可以帮我解决这个问题吗?
顺便说一句,我使用通知的原因是我可能会推送几个A的实例,如果有人发布通知,那么堆栈中的其他实例也需要更新。答案 0 :(得分:0)
只是一个猜测,但
您是否在viewDidLoad:或viewDidAppear中注册通知? 您是否在viewDidUnload:或viewDidDisappear中取消注册:?
通常情况下,使用出现/消失方法注册通知是最佳选择,因为视图控制器只有在通知可见时才会感兴趣。
无论您使用哪种方法,都要确保您的注册和取消注册调用符合UIViewController方法。
答案 1 :(得分:0)
以下是您的问题 - 我的问题是:当我在A2中发布通知时,A2可以接收它。但是,当我弹出A1时,A1没有变化。
当你弹出A1时,那时A2被解除分配,你在那里创建的通知/监听器也被删除,所以它不会响应通知。 现在,如果你想要A1也听取通知,那么你也需要在A1中添加观察者。
答案 2 :(得分:0)
很奇怪,我重启Xcode后会收到通知(4.3.1(4E1019))。
感谢你们的帮助。
顺便说一句,如果没有解除分配,该对象将收到通知。