1

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

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

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

这可能是漫长的一天或我对 iPhone OS 不熟悉的结果,但我一直在寻找正确的方法来设置我的对象/控制器。

4

1 回答 1

0

您一次不会有多个视图控制器处于活动状态。(nav 和 tabbar 控制器不控制视图,它们控制其他控制器。)在这种情况下,您将拥有一个以 MainView 作为其视图属性的控制器。它将添加 StartView 和 formView 作为 MainView 的子视图。

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

根据您的描述,您可能只需要一个视图/视图控制器对:将 formView 控制器设置为在显示 formView 之前打开相机视图。当相机被关闭时,它会自动恢复为 formView。没有大惊小怪,没有混乱。

于 2010-06-22T02:49:45.887 回答