Mel*_*emi 27 cocoa-touch uiviewcontroller uiview
无论如何,对于我来说,我有一个相当复杂的观点,它有一些带有自定义界面项的"托盘".它们滑入和滑出我的根视图.我想嵌套(addSubview)视图中的项目.在显示之前每个都需要一些设置......并且没有一个可以在IB中配置(它们是UIView的子类).
我想知道为每个"托盘"子类UIViewController是否有意义,然后将VC的视图属性指向"托盘"视图,我可以使用我的自定义UIView对象填充该视图.这样我就可以利用UIViewController中的viewDidLoad等方法.
我不知道其他人这样做 - 至少在我看过的几个样本中.这会产生一种情况,即屏幕上会同时显示多个视图控制器.从导航控制器本身到rootViewController及其视图,然后是这些小型trayViewControllers的任意数量(允许,屏幕大小允许).如果是这样,响应者链如何工作?我假设它从最低的UIView到其封闭的VC,然后到那个VC的父视图,然后该视图的VC等等重复,重复..直到UIApplication ...我是在寻找麻烦吗?
或者,我只是坚持使用UIViews并将子视图添加到子视图等等.
Jas*_*wig 29
在iOS 5.0之前,特别不建议这样做,因为不会调用嵌套视图控制器的生命周期事件 - viewWillAppear等.请参阅滥用UIViewControllers.
由于多个UIViewController的视图一次可见,其中一些控制器可能无法接收重要消息,如-viewWillAppear:或-didReceiveMemoryWarning.此外,可能无法按预期设置或更新某些属性(如parentViewController和interfaceOrientation).
iOS 5.0添加了包含UIViewControllers,它通过添加子视图控制器来正确处理这些生命周期事件.
- (void)addChildViewController:(UIViewController *)childController
Run Code Online (Sandbox Code Playgroud)
我花了无数个小时试图让嵌套的视图控制器在iOS 4中工作.我最终做到了,但它需要很多胶水代码,这很容易出错.然后我在文档中看到了警告.
| 归档时间: |
|
| 查看次数: |
10084 次 |
| 最近记录: |