iPhone - 嵌套视图&控制器

时间:2010-05-28 23:36:47

标签: iphone objective-c cocoa cocoa-touch model-view-controller

是否可以通过该屏幕的UIViewController从一个xib加载一个iPhone屏幕,然后在该屏幕中另一个UIView,内容从一个单独的xib文件加载?如果是这样,是否可以让嵌套视图的事件由屏幕其余部分的单独自定义UIViewController子类处理?如果这两件事都有可能,那么它们也是可取的吗?

1 个答案:

答案 0 :(得分:7)

有可能。 Apple建议不要同时在屏幕上激活多个UIViewController,因此他们会提出建议。如果第二个视图控制器的原因是导航或模态,我建议只做它。

一个视图控制器,用于加载其他视图控制器,如导航控制器,需要一些自己的屏幕空间,并使用其余的加载另一个视图控制器。那样就好。这里的标准是只有一个控制器呈现内容而另一个呈现导航。

视图控制器可以加载另一个视图控制器来执行一些有限的任务,例如从列表中选择项目或输入一些文本。第二个视图控制器可能只填充部分屏幕。这里的标准是一个控制器以模态方式运行,并且只显示足够长的时间以获得一些用户输入。

对于在呈现内容的两个视图控制器之间拆分屏幕的一般情况,Apple建议您从UIViewController派生的单个类管理视图。如果视图足够复杂以保证其他控制器,则从NSObject派生它们并让主视图控制器管理子控制器以及视图。子控制器将主控制器作为委托,主控制器将视图传递给子控制器以进行管理但不是拥有。