以编程方式更改子视图控制器内的子视图

时间:2010-06-21 23:18:28

标签: iphone-sdk-3.0 ios ios4

在我的iPhone应用程序中,我设置了一个名为Main View的默认空白视图,其中将为应用程序的不同部分加载各种子视图。这与我使用工具栏在子视图之间切换的方法相同。在这种情况下,在MainView控制器中,我可以将IBActions挂钩到工具栏中的按钮,这样当按下按钮时,MainView会为自己添加不同的子视图。

但在我的情况下,我需要告诉MainView从子视图中更改其子视图。所以这里有两个姐妹子视图,每个子视图都有自己的控制器和xib,它们将被加载为MainView的子视图:   - StartView   - FormView

在StartView中,经过一些动画和欢迎之后,按钮会触发相机图像选择器。一旦图像选择器返回图像,我需要告诉MainView删除StartView并添加FormView。

这可能是漫长的一天或我对iPhone操作系统的新见解的结果,但我不知道如何正确地设置我的对象/控制器。

1 个答案:

答案 0 :(得分:0)

您一次只能激活多个视图控制器。 (导航和制表位控制器不控制视图,它们控制其他控制器。)在这种情况下,您将拥有一个将MainView作为其视图属性的控制器。它将添加StartView和formView作为MainView的子视图。

然而,这不是一个好的设计。它将通过强制它来处理许多视图来重载MainView控制器。最好使用隐藏的导航控制器或标签栏。对于几乎任何您可以想象的界面布局,控制器的层次结构可以从用户的角度创建幻觉。无需创建模仿可视化结构的逻辑结构。

根据您的描述,您可能只需要一个视图/视图控制器对:设置formView控制器以在显示formView之前打开摄像机视图。当相机被解除时,它会自动恢复到formView。没有大惊小怪,没有麻烦。