【问题标题】:What is the correct way to handle multiple view controllers on the same screen?在同一屏幕上处理多个视图控制器的正确方法是什么?
【发布时间】:2013-04-22 19:29:07
【问题描述】:

我有一个视图控制器,它几乎没有控件和图像,并且位于屏幕顶部。我将在其下方留出空间用于子视图控制器及其视图。

我将一次显示一个子视图控制器,有什么好的方法来做到这一点? 子视图控制器的总数在 6 个左右,它们有很大的不同,所以重用一些容器视图控制器是行不通的。

当按下这些控制器上的某个按钮时,我将移至下一个。 我是否应该创建一些属性,比如说 contentView 将持有当前屏幕上的控制器的视图? 如果不使用自动布局,如何处理旋转?

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

【问题讨论】:

  • 屏幕上不存在视图控制器。视图可以。
  • iOS 5 标签有什么原因吗?
  • @DavidRönnqvist 提示我使用的是 ios5 样式而不是 ios6 自动布局

标签: ios objective-c ios5


【解决方案1】:

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

您肯定希望为每个孩子使用不同的视图控制器。将容器视图添加到顶层视图。这个视图是处理旋转和自动调整大小的地方。该视图的内容可能是子视图控制器视图本身(您可以使用transitionFromView:toView:duration:options:completion: 之类的方法之一来控制转换),或者容器视图可以包含UINavigationController,您只需将子视图控制器推入其中即可。

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

【讨论】:

    猜你喜欢
    • 2011-01-26
    • 2013-09-02
    • 2011-04-12
    • 2020-12-10
    • 2019-12-28
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多