我试图想出一些简单的东西,但我无法弄明白。
我有一个UITabBarController,有一点我必须显示另一个标签的UIViewController,并使用原始UIViewController中的数据调用新的UIViewController中的方法。
所以基本上我想将数据传递给另一个UIViewController(可能尚未初始化),并显示正确的选项卡。
如果我使用NSNotificationCenter
,我不确定该标签的UIViewController是否已初始化,而且在此处使用委托也有点难看。
在新标签页中发送和显示数据的简洁方法是什么?
答案 0 :(得分:2)
更好的想法是在选项卡视图控制器中实现协议,视图控制器可以调用该协议来发送数据并设置任何其他视图控制器
答案 1 :(得分:1)
int x = 1; //this is the view controller you want to go to.
MySecondViewController *secondViewController = (MySecondViewController *)self.tabBarController.viewControllers[x];
[secondViewController setDataObject:dataObject];
[self.tabBarController setSelectedIndex:x];
所以正在发生的事情是你从tabBarController调用控制器,如果没有,它将启动它。然后,您可以在控制器上设置任何所需的内容,然后切换到所选选项卡。
答案 2 :(得分:1)
您应该有两种视图控制器都可以访问的某种数据模型(单例?)。当第二个视图控制器即将显示其视图时,它应引用数据模型以确定它应显示的数据。