2

我刚刚开始学习 iOS 编程,似乎不明白这两个术语之间的区别。

我一直在学习容器视图,苹果文档不断提到“容器视图控制器”。但是,我没有看到名为 UIContainerViewController 的类。故事板让我可以通过拖放创建一种特定类型的视图,称为容器视图,并在创建此容器视图时自动创建标准视图控制器,并附加一个嵌入segue。

1 - 这个新自动创建的视图控制器是容器视图控制器吗,因为它看起来负责处理我刚刚创建的容器视图中显示的内容?

2 - 还是包含容器视图的原始视图控制器称为容器视图控制器?

3 - 苹果文档使用以下语句定义了一个容器视图控制器 - “容器视图控制器包含其他视图控制器拥有的内容。” 我不太明白这是什么意思。有人可以向我解释吗?

如果需要任何其他信息,请发表评论,我将编辑我的问题以包含它。

4

2 回答 2

2

为了更系统地回答我自己的问题,

1 - 新创建的视图控制器不是容器视图控制器。它被视为一个独立的视图控制器。embed segue 精确地指定了从原始视图控制器到新视图控制器的 segue。但是,容器视图仍然是旧视图控制器的一部分,并且仅指示将在其中显示哪些其他视图控制器的视图。

2 - 是的。这是因为原始视图控制器包含容器作为视图。它最终负责选择在容器中显示哪些其他视图控制器的视图。因此,它执行该容器的控制器的职责。

3 - “一个容器视图控制器包含其他视图控制器拥有的内容”:这个定义现在已经明确了。原始视图控制器显示实际上属于(拥有)其他视图控制器的视图。因此,根据定义,原始视图控制器是容器视图控制器,将新创建的视图控制器作为子视图。

于 2015-02-12T10:33:07.970 回答
0

简而言之,容器视图控制器允许您将视图控制器放入其他视图控制器中。故事板只是为您提供了一个方便的工具,它将导致视图控制器自动放置在另一个视图控制器中。如果您要在代码中执行此操作,则需要创建两个视图控制器并删除一个 vc 的视图并将其放置在另一个中,故事板所做的就是为您省去麻烦。

于 2015-02-12T06:36:37.730 回答