UIViewController 的视图层次结构

Posted

技术标签:

【中文标题】UIViewController 的视图层次结构【英文标题】:View hierarchy of UIViewController 【发布时间】:2012-07-17 06:37:07 【问题描述】:

在我的 ContainerViewController 中,我将滚动视图添加为子视图。在该滚动视图中,我将 ImageViewController 的视图添加为子视图。现在我应该将 ImageViewController 作为子视图控制器添加到 ContainerViewController 吗?

【问题讨论】:

你想做什么。你能详细解释一下吗? 【参考方案1】:

没有“子视图控制器”的概念。您只需要设置视图的层次结构,并让视图控制器控制视图的行为。

【讨论】:

它存在于 ios 5.0 cocoanetics.com/2012/04/containing-viewcontrollers【参考方案2】:

您无需为基本的UIViewController 再次添加UIImageView

从层次上讲,您创建了第一个UIViewController,并为它的UIView 添加了UIScrollView 作为子视图,并将UIImageView 添加到UIScrollView

这是完美的。

试着把它们想象成一双鞋 (UIImageView) 在一个盒子里 (UIScrollView) 你抽屉里有什么 (UIViewController)。

如果您之前将装有鞋子的盒子放入抽屉,则无需再次将这双鞋放入抽屉;因为你的鞋子已经在抽屉里,在一个盒子里。

【讨论】:

我想添加一个 ImageViewController,它是 UIViewController 的子类。不是 UIImageView。 在这种情况下,您必须将UIViewController 的继承类的UIView 属性添加到UIScrollView 作为子视图。不管当前名字是什么继承的类,流程和逻辑都是一样的。

以上是关于UIViewController 的视图层次结构的主要内容,如果未能解决你的问题,请参考以下文章

尝试在其视图不在窗口层次结构中的 UIViewController 上呈现 UIViewController

尝试在其视图不在窗口层次结构中的 UIViewController 上呈现 UIViewController

尝试在其视图不在窗口层次结构中的 UIViewController 上呈现 UIViewController

UIViewController 被另一个全屏视图控制器覆盖,但没有从层次结构中删除

如何在不将控制器添加到视图层次结构并使其可见的情况下从 UIViewController 获取 UIView?

使用 UINavigationController 管理 UIViewController 层次结构