【发布时间】:2017-06-22 15:36:55
【问题描述】:
我有一个具有底部选项卡布局的 iOS (Objective C) 应用程序。 我的以下设置运行良好,除非尚未加载第二个选项卡。我的第一个视图控制器(第一个选项卡)从第二个视图控制器调用了一个观察到的方法:
VC1:
-(void) callmethodVC2 {
[[NSNotificationCenter defaultCenter]postNotificationName:@"MYFUNC" object:nil];
//switch to 2nd Tab
self.tabBarController.selectedIndex = 1;
}
VC2:
在viewDidLoad()我注册:
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(loadSomething) name:@"MYFUNC" object:nil];
稍后在 VC2 中我实现了观察方法:
-(void) loadSomething {...}
所以 VC1 通过 NotifacationCenter 调用该方法 -> 标签栏按预期切换,该方法效果很好,但 仅 如果我访问了第二个标签 之前。
我猜是当我在加载 viewDidLoad 方法之前访问第二个 VC 并且有注册的观察方法!因此,如果我在没有调用 viewDidLoad 方法之前没有访问 VC2,也没有注册观察者方法。
如何在我的第一个 VC 中“预加载”第二个 VC,这是推送第二个 VC 的正确方法吗?又是如何做到的?
【问题讨论】:
标签: ios uiviewcontroller nsnotificationcenter