理解addchildviewcontroller
来源:互联网 发布:支票打印软件下载 编辑:程序博客网 时间:2024/05/16 03:28
之前在使用ViewController的时候需要增加View层总是使用addsubView添加N个View,但是这些View有时候不需要全部用到,如果有由视图控制器来管理,在需要的时候显示,不需要的时候释放掉以此来节省内存。而且还有一个好处就是切换视图控制器的时候可以更加自由地定义动画以及定义子视图控制器的大小。
在VC中直接使用addSubView虽热可以减少VC的耦合性,但是会带来其它更加严重的问题。
[self.view addSubView:self.vc.view];
直接add进去的SubView不在ViewController的view hierarchy内,事件没法正常传递,而且违背了CocoaTouch开发的设计MVC原则,ViewController应该且只应该管理一个view hierarchy.
所以应当使用addchildviewcontroller
//为视图控制器添加子视图控制器
[self addChildViewController:newVC];
//将子视图控制器的View添加到主视图控制器。
[self.view addSubview:newVC.view];
####注意点
在调用[父视图控制器 addChildViewController:子视图控制器]之前,无需显式调用[子视图控制器 willMoveToParentViewController:父视图控制器]方法,因为已经默认调用了。
在调用[父视图控制器 addChildViewController:子视图控制器]之后,要仅接着调用[子视图控制器 didMoveToParentViewController:父视图控制器]方法。
在调用[子视图控制器 removeFromParentViewController]之前,必须先调用[子视图控制器 willMoveToParentViewController:nil]。
在调用[子视图控制器 removeFromParentViewController]之后,无需显式调用[子视图控制器didMoveToParentViewController:父视图控制器],因为已经默认调用了。
在调用transitionFromViewController之前,调用[fromController willMoveToParentViewController:nil]。
在调用transitionFromViewController之后,调用[toController didMoveToParentViewController:父视图控制器]。
还有一个api就是切换视图控制器
- 理解addchildviewcontroller
- 理解addchildviewcontroller
- addChildViewController
- addChildViewController
- addChildViewController
- addChildViewController:
- addChildViewController
- addChildViewController
- addChildViewController
- addChildViewController
- addChildViewController
- addChildViewController
- addChildViewController
- addChildViewController
- addChildViewController
- addChildViewController
- addchildviewcontroller
- View Controller容器(有助于理解addChildViewController)
- 自己动手编译最新Android源码及SDK
- 完美洗牌2
- 错题
- 利用js增加页面点击率(利用setTimeout刷新页面)
- Android Studio 在library中引用本地arr的办法
- 理解addchildviewcontroller
- Heap size 2757K exceeds notification threshold (2048K)
- 第一行设定了colspan之后,如何设置td宽度
- iOS应用程序实现内部多语言的具体项目应用
- 世界语言对照表
- 深度探讨机器学习中的ROC和PR曲线
- android studio中如何引入.so库
- xgboost入门与实战(原理篇)
- Android 6.0(23)以后动态权限的使用