我有一个相当复杂的看法,对我来说,无论如何,有几个“盘”与他们的自定义界面项目。 他们和我的根视图中滑出。 我想窝(addSubview)视图里面的物品。 每一个需要显示之前的一些设置...并没有在IB配置(他们的UIView的子类)。
我想知道,如果是有意义的子类的UIViewController每个“托盘”,然后让VC的看法属性点的“托盘”的观点,我可以用我的自定义的UIView对象来填充。 这样我可以充分利用其在的UIViewController的viewDidLoad中,等等方法。
我不知道别人这样做的 - 至少我已经看过了几样英寸 这会造成这样一种情况会有显示在屏幕上的多个视图控制器一次。 从导航控制器本身上向下到RootViewController的和其视图然后任意数量的(当然,屏幕尺寸允许的话),这些小的trayViewControllers。 如果是这样,怎么响应链的工作? 我认为它会从最低的UIView去其封闭VC,然后到VC的父视图,则该视图的VC,等等,等等重复,重复..高达UIApplication的......我在自找麻烦?
或者,我只是UIViews和添加子视图为子视图,等等等等..棒
此前的iOS 5.0这将具体地不推荐,因为嵌套视图控制器的生命周期事件 - viewWillAppear中,等 - 将不被调用。 见滥用UIViewControllers 。
随着多个UIViewController的一次视图中显示其中一些控制器可能无法接收重要邮件像-viewWillAppear:或-didReceiveMemoryWarning。 另外他们的一些属性,如parentViewController和interfaceOrientation可能不能设置或更新预期。
的iOS 5.0加入遏制UIViewControllers ,通过添加子视图控制器正确地处理这些生命周期事件。
- (void)addChildViewController:(UIViewController *)childController
我花了无数的时间试图让嵌套的视图控制器在iOS版4.我最终没有工作,但它需要大量的胶水代码,这是容易出错。 然后我看到文档的警告。
我试图做同样的事情,但苹果从你的方法被劝阻的文件 ,其中指出,“你不应该使用视图控制器来管理意见只能填充其窗口,也就是说,只有部分地区的部分由应用程序内容矩形定义。如果你想有一个接口由几个小意见,将它们嵌入在一个单一的根视图和管理您的视图控制器这一观点。”
我对你正在尝试做的经验是一个很好的。 我尽量保持笔尖文件尽可能的简单,所以我采取任何更多钞票“子视图”,并与它自己的视图控制器自身的笔尖文件封装它,所以我最终嵌套视图控制器。 在我的应用程序之一,我有一个非常复杂的表格视图单元格,有一个子视图。 所以我结束了具有是这样的一个层次:在顶层的tableview控制器,该tableviewcell的控制器为每一行和每一内每个小区内的子视图这些一个subviewcontroller的。
和一切工作正常。
请原谅我的英语。
文章来源: Is it wise to “nest” UIViewControllers inside other UIViewControllers like you would UIViews?