1

我试图想出一些简单的东西,但我无法弄清楚。

我有一个 UITabBarController,有一次我必须显示另一个选项卡的 UIViewController,并使用来自原始 UIViewController 的数据在新的 UIViewController 中调用一个方法。

所以基本上我想将数据传递给另一个 UIViewController(可能尚未初始化),并显示正确的选项卡。

如果我使用NSNotificationCenter,我不确定选项卡的 UIViewController 是否已初始化,而且在这里使用委托有点难看。

在新选项卡中发送和显示数据的干净方式是什么?

4

3 回答 3

2

一个更好的主意是在选项卡视图控制器中实现一个协议,视图控制器可以调用该协议来发送数据并设置任何其他视图控制器

于 2013-08-20T22:14:54.430 回答
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 调用控制器,如果不是,它将在那里启动。然后你可以在控制器上设置你想要的任何东西,然后你只需切换到选定的选项卡。

于 2013-08-20T22:19:27.233 回答
1

你应该有一个可以被两个视图控制器访问的某种数据模型(单例?)。当第二个视图控制器要显示它的视图时,它应该引用数据模型来确定它应该显示的数据。

于 2013-08-20T22:20:20.563 回答