iOS通知接收:一些可以和另一个不能

时间:2012-04-11 03:38:31

标签: ios objective-c uinavigationcontroller nsnotifications

我使用UINavigationController来控制视图控制器的更改。假设我逐个推送A1和A2。 A1和A2都是我的自定义视图控制器A的实例。 A已注册通知,并在收到通知时刷新UI。

我的问题是:
当我在A2中发布通知时,A2可以接收它 但是,当我弹出A1时,A1没有变化。

那么任何人都可以帮我解决这个问题吗?

顺便说一句,我使用通知的原因是我可能会推送几个A的实例,如果有人发布通知,那么堆栈中的其他实例也需要更新。

3 个答案:

答案 0 :(得分:0)

只是一个猜测,但

您是否在viewDidLoad:或viewDidAppear中注册通知? 您是否在viewDidUnload:或viewDidDisappear中取消注册:?

通常情况下,使用出现/消失方法注册通知是最佳选择,因为视图控制器只有在通知可见时才会感兴趣。

无论您使用哪种方法,都要确保您的注册和取消注册调用符合UIViewController方法。

答案 1 :(得分:0)

以下是您的问题 - 我的问题是:当我在A2中发布通知时,A2可以接收它。但是,当我弹出A1时,A1没有变化。

当你弹出A1时,那时A2被解除分配,你在那里创建的通知/监听器也被删除,所以它不会响应通知。 现在,如果你想要A1也听取通知,那么你也需要在A1中添加观察者。

答案 2 :(得分:0)

很奇怪,我重启Xcode后会收到通知(4.3.1(4E1019))。

感谢你们的帮助。

顺便说一句,如果没有解除分配,该对象将收到通知。