iOS视图控制器<2>
来源:互联网 发布:便签元数据修复 编辑:程序博客网 时间:2024/04/29 03:23
Container View Controllers 容器视图控制器
UITabBarController、UINavigationController、UIPageViewController都是内置的父视图控制器:你将子视图控制器传给它们,它们会将子视图控制器的视图放进它们自己的视图中。
在iOS5中,苹果引入了一种连贯的方式来让你创建自己的父视图控制器,可以有效地管理子视图控制器,把子视图控制器的视图放进界面中。这种自定义的父视图控制器叫做容器视图控制器(container view controller)
添加和移除子视图控制器
视图控制器有个数组类型的可读属性:public var childViewControllers: [UIViewController] { get }
,那么,视图控制器便可以成为父视图控制器,但是,你不能仅仅只填充这个数组。为了成为父视图控制器,你的视图控制器子类必须要实现某些职责:
- 添加子视图控制器:
当一个视图控制器要成为你定义的父视图控制器的子视图控制器时,你定义的父视图控制器必须要按照下面的顺序来完成这些事情:
1.发送addChildViewController:
消息给自身,子视图控制器作为参数,子视图控制器会自动添加到childViewControllers数组中,会被保持。
2.让子视图控制器的视图进入界面中(作为你定义的父视图控制器的视图的子视图)
3.向子视图控制器发送didMoveToParentViewController:消息,你定义的父视图控制器作为参数 - 移除子视图控制器
1.向子视图控制器发送willMoveToParentViewController:消息,参数为nil
2.从你的界面中移除子视图控制器的视图
3.向子视图控制器发送removeFromParentViewController消息。子视图控制器会自动从父视图控制器的childViewController数组中移除。
记住:addChildViewController:
会自动为你发送willMoveToParentViewController:
这个消息;removeFromParentViewController
会自动为你发送didMoveToParentViewController:
消息
为父视图控制器添加一个子视图控制器:
let son=sonController() self.addChildViewController(son) son.view.frame=self.view.frame self.view.addSubview(son.view) son.didMoveToParentViewController(self)
下一个问题是如何用另一个子视图控制器的视图来替代界面上的视图控制器的视图?方法是向父视图控制器发送下面的消息:
transitionFromViewController:toViewController: duration: options: animations:completion:
上面的方法会很好地对视图进行管理,在transition之前,添加一个子视图控制器的视图到界面上,在transition之后,移除另一个子视图控制器的视图从界面上。
- iOS视图控制器<2>
- IOS: UINavigationController 视图控制器
- iOS UI03_UIViewController视图控制器
- iOS 透明视图控制器
- iOS视图控制器<1>
- iOS 容器视图控制器
- iOS 视图控制器生命周期
- iOS视图控制器总结
- ios 视图控制器
- iOS 视图控制器(UIViewController)剖析
- iOS 视图控制器(UIViewController)剖析
- iOS 视图控制器(UIViewController)剖析
- iOS 视图控制器(UIViewController)剖析
- iOS 视图控制器(UIViewController)剖析
- iOS 视图控制器(UIViewController)剖析
- iOS 视图控制器(UIViewController)剖析
- iOS视图控制器初始化问题
- iOS 视图控制器(UIViewController)剖析
- hashCode
- 运算符重载与友元
- 从BufferedReader到装饰设计模式
- SET_CONTEXT ORA-01031: 权限不足
- 如何利用百度云下载BT或磁力链等资源,而不用迅雷
- iOS视图控制器<2>
- 流量充值解决方案(附代码)
- 002 - Add Two Numbers
- Android studio安装配置常见问题及其解决方案
- 让activity出现在锁屏画面前
- FindBugs规则整理
- java.util.regex包中类Pattern 正则表达式的构造摘要(二)
- java代码分析及分析工具
- Java——协变数组和类型擦除(covariant array ; type erasure)