我正在使用不同的导航控制器制作应用程序。所有这些都是最初初始化的。
说,我有3个导航控制器A,B和C.
来自B的视图控制器(比如B1)发送一个应该从A中的视图控制器听到的通知(比如A1)。之后,我们去查看控制器A1。
但是,如果我们从头开始处于视图控制器B1中(并且从未进入View控制器A1),则A1不会收到通知。然而,它第二次得到它。
或者,如果我进入A1内部,则会正确接收通知。
有人可以帮助我吗?谢谢。
注意:侦听器代码位于A1的init中。它被击中(我使用断点检查)。
答案 0 :(得分:0)
由于您在视图显示一次后说您收到了通知,我怀疑您是在一个方法中注册通知,该方法在显示视图之前不会运行(viewDidLoad
,{{ 1}}等。
如果是这种情况,请尝试将通知注册移至您在ViewControllers中使用的viewDidAppear:
方法。
答案 1 :(得分:0)
通过所有应用程序可以观察到NSNotification。所以,为了做你打算做的事情,我会使用布尔标志或计数器。您可以将这些指标放在appDelegate类中或使用全局变量。