使用UITabBarController时强制从按钮更改视图

时间:2010-05-16 03:10:52

标签: iphone uitabbarcontroller

当使用UITabBarController时,当用户在View1上输入一些数据并按下按钮时,我需要执行一些计算并在View2上显示结果。

我有一个AppDelegate,View1Controller,View2Controller和View3Controller(View3基本上是静态视图)。我的AppDelgate声明了UITabBarController * rootController;

在View1上,我的计算是在IBAction中为buttonPressed执行的;但是,我似乎无法强制视图以编程方式切换到View2。

我已经做了很多寻找类似问题的事情,并且认为我应该做类似“self.rootController.selectedIndex = 1”的事情;但是,当我在我的View1Controller上的buttonPressed中执行此操作时,我收到错误“请求成员rootController在不在结构或联合中的东西”。

我觉得我在这里缺少一些基本的东西......可能需要用我的AppDelegate做点什么,但是我正撞在墙上。

任何人都可以在这种情况下提供一些指导......比如我应该在View1Controller标题和参考我的AppDelgate的实现中做的关键事情?谢谢!

2 个答案:

答案 0 :(得分:1)

对于搜索如何从一个标签切换到另一个标签的任何人,都会给出答案here

答案 1 :(得分:0)

这听起来像一个奇怪的用户界面 - 但让我们接受你正在努力做正确的事情。

iPhone开发是关于模型视图控制器 - MVC。所以原则上你想要的是view1更新你的Model,而View2根据你的模型执行计算。

如果您使用的是标签栏控制器,那么您可能想知道何时切换标签以执行这些操作。在view1中,您可能希望编写代码以在viewWillDisappear中更新模型 - 这将在选项卡替换为下一个选项卡时运行。补充函数(您可能希望在view2中使用它)是viewWillAppear - 这可以用于使用模型中的数据更新view2。

现在你要知道放置模型的位置了。您可能希望根据需要存储在模型中的数据创建一个带有@parameters的类。然后,您可以在AppDelegate中实例化模型,并将模型作为参数传递给两个视图。