使用UITabBar,我有4个同级视图(每个选项卡项一个)。应用加载时,第一个标签项和视图可见。该第一个视图具有发布NSNotification的IBAction。其他三个视图中的每个视图都有该通知的观察者,但它们只有在通过触摸选项卡栏项使其首次可见之前,才能“听到”该通知。

是否可以在激活同级视图之前向同级视图的NSNotification观察者发布NSNotification,或者以一种可以使其观察者通知而无需先激活它们的方式加载同级视图的方法?

最佳答案

兄弟视图(或更准确地说,表兄弟视图:)可能尚未收到通知,因为它们尚未实例化。通常,视图控制器在首次显示时实例化其视图(和子视图)。

您可能想要做的是让视图控制器处理通知,而不是子视图。设置选项卡栏时,将实例化视图控制器,因此它们应准备就绪,可以立即接收通知。

您不能真正将通知从视图控制器转发到子视图,因为出于相同的原因,您将尝试向尚未实例化的视图发送消息。您应该做的是在视图控制器中跟踪状态,然后在viewDidLoadloadView中适当地设置子视图(取决于您是否使用NIB)。

关于iphone - 同级 View 之间的NSNotification,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/757589/

10-10 20:27