ViewControllers:现在与动画和作为孩子添加之间的区别是什么?

时间:2013-07-19 11:42:20

标签: ios uiviewcontroller presentmodalviewcontroller

我需要呈现和关闭具有菜单动画的自定义视图控制器。我试图以模态方式呈现它,但是有很多麻烦的错误消息告诉我我的开始/结束命令不平衡等等。看起来它应该是直截了当的,它确实不是。所以我正在查看关于自定义容器和儿童控制器等的文档,它看起来有点矫枉过正,但如果它让所有这些错误消失,我想这是值得的。

1 个答案:

答案 0 :(得分:0)

要使视图控制器的内容对用户可见,它必须与窗口关联。您可以通过多种方式在自己的应用中执行此操作:

从另一个带动画的视图控制器

显示它

呈现的视图控制器不是特定类型的视图控制器 - 呈现的视图控制器可以是具有附加的内容视图控制器的内容或容器视图控制器。在实践中,内容视图控制器专门设计为由另一个控制器呈现,因此将其视为内容视图控制器的变体会很有用。

大多数情况下,您提供视图控制器以从用户收集信息或捕获用户的注意力以用于某些特定目的。完成此目的后,呈现视图控制器将关闭呈现的视图控制器并返回标准应用程序界面。如图所示: -

enter image description here

使视图控制器成为容器的子级

视图控制器层次结构以单个父级(窗口的根视图控制器)开始。如果该视图控制器是容器,则它可能具有提供内容的子视图。反过来,这些控制器也可以是具有自己孩子的容器。 enter image description here

标签视图控制器从窗口中获取其大小。它为其标签栏保留了空间,并为其孩子提供了剩余的空间。如果导航控制器是当前显示的控件,则为其导航栏保留空间并将其余部分交给其内容控制器。在每个步骤中,子视图控制器的视图由父级调整大小并放置在父视图层次结构中。

视图和视图控制器的这种组合还为应用程序处理的事件建立了响应者链。