在同一屏幕上处理多个视图控制器的正确方法是什么?

时间:2013-04-29 07:36:16

标签: ios objective-c ios5

我有一个视图控制器,控件和图像很少,位于屏幕顶部。对于子视图控制器及其视图,我将在其下方留出一个空格。

我会一次显示一个子视图控制器,这样做的好方法是什么? 子视图控制器的总量大约为6,它们非常不同,因此重用某些容器视图控制器将无法正常工作。

当按下这些控制器上的某个按钮时,我将移动到下一个按钮。 我应该制作一些属性,让我们说contentView将保存当前在屏幕上的控制器的视图? 如果我不使用自动布局,如何处理旋转?

编辑:这是一个理论问题,我知道addChildViewController的方法,并知道如何向父母添加视图和控制器。我只是想知道这样做的好方法。

1 个答案:

答案 0 :(得分:2)

这在某种程度上取决于您希望如何在不同的子视图控制器之间进行转换,但您的问题已经列出了一个很好的方法。

您肯定希望为每个孩子设置不同的视图控制器。将容器视图添加到顶级视图。此视图是处理旋转和自动调整大小的位置。此视图的内容可以是子视图控制器视图本身(您可以使用transitionFromView:toView:duration:options:completion:之类的方法控制转换),或者容器视图可以保存UINavigationController,您只需按下子视图控制器进入它。

无论容器视图是什么,如果任何子视图控制器尝试将另一个视图控制器显示为模态,则需要注意。呈现的视图控制器需要由层次结构顶部的视图控制器呈现,或者呈现的视图可能无法正确交互或真正呈现在其他屏幕元素的前面。