Raj*_*dal 9 iphone cocoa-touch uiviewcontroller uikit uiview
View控制器编程指南说明了有关视图控制器的用法:
您创建的每个自定义视图控制器对象都负责管理单个视图层次结构中的所有视图.在iPhone应用程序中,视图层次结构中的视图通常覆盖整个屏幕,但在iPad应用程序中,它们可能仅覆盖屏幕的一部分.视图控制器与其视图层次结构中的视图之间的一对一对应关系是关键设计考虑因素.您不应使用多个自定义视图控制器来管理同一视图层次结构的不同部分.同样,您不应使用单个自定义视图控制器对象来管理多个屏幕内容.
据我所知,如果我们使用多个自定义视图控制器来控制视图的各个部分(即视图控制器来管理主视图的子视图,而主视图又由视图控制器管理),则默认方法如下:
didReceiveMemoryWarnings
viewWillAppear
viewWillDisappear
viewDidUnload
Run Code Online (Sandbox Code Playgroud)
不会被称为等.
除此之外,还有其他坚实的理由我们不应该使用多个视图控制器来管理视图的相应子视图吗?
该文档还提供了另一种解决方案,其内容如下:
注意:如果要将视图层次结构划分为多个子区域并分别管理每个子区域,请使用通用控制器对象(从NSObject降序的自定义对象)而不是视图控制器对象来管理每个子区域.然后使用单个视图控制器对象来管理通用控制器对象.
但是没有提到为什么不应该首选多个视图控制器.我的问题是:
为什么我们不应该这样喜欢它?
我很担心,因为我更喜欢使用UIViewController的子类来管理我的视图,因为我每次都从nib加载它们并且我为每个视图控制器分隔nib.在项目的后期阶段变得容易满足变化.这是错的吗?我是否必须改变我的编程风格,或者如果我采用这种方法可以吗?
谢谢,
拉吉
好吧,我会说“只要它有效”,你就可以继续这样做!但为了让事情变得“干净”,我会使用我自己的物品。由于 ViewController 在设计时考虑了其他通用功能(例如使用导航控制器和选项卡栏控制器),这使得它对于简单的使用来说有点“重”,就像您一样。另外,就像您提到的,只有当 viewController 的视图添加到主窗口时才会调用某些事件。
您不能通过 Interface Builder 使用您自己的对象吗?如果您创建一个(或多个)UIView IBOutlet,它的工作原理应该是相同的。
归档时间: |
|
查看次数: |
907 次 |
最近记录: |