iPhone - 嵌套视图和控制器

cod*_*key 1 iphone model-view-controller cocoa cocoa-touch objective-c

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

dra*_*ard 7

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

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

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

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