0

我是 iOS 开发新手,正在处理现有项目。我只是有一个关于视图和视图控制器应该如何概念化以及处理它们的约定的快速问题。

我注意到基UIViewController类有一个view引用实际“物理”(因为没有更好的词)视图的属性,而控制器基本上管理该物理视图(并将其与模型联系起来,等等——我理解的标准 mvc 东西)。

这表明视图控制器在可可触摸中具有概念上的优先级。但是,当添加子视图(到父物理视图?或父视图控制器?)时,它接受物理视图,而不是视图控制器。

是否期望我首先创建子视图控制器(大概创建自己的物理视图)然后将其view属性传递给addSubView?我只是想确保在这里的传统工作流程中没有遗漏一些明显的东西。

4

1 回答 1

1

视图和视图控制器的比例不是 1:1。视图控制器管理给定功能区域所需的尽可能多的视图——在 iPhone 上,通常是一个充满内容的屏幕,但这个定义略有变化。

控制器的 view 属性只是父视图——它可以有尽可能多的子视图来完成这项工作。控制器在这些视图和数据模型之间进行协调以提供应用程序的功能。

您可以拥有子视图控制器,它们被添加到视图控制器层次结构以及视图层次结构中(子视图控制器的视图被添加为父视图控制器视图的子视图),但您不会对每个子视图都这样做。

在 WWDC 2012(“视图控制器的演变”,IIRC)中有一个精彩的演讲很好地解释了这一点。

于 2013-03-15T19:27:57.727 回答