UIWindow
介绍
-
一、UIWindow是一种特殊的UIView,通常在一个程序中只会有一个UIWindow,但可以手动创建多个UIWindow,同时加到程序里面。UIWindow在程序中主要起到三个作用:
- 1.作为容器,包含app所要显示的所有视图
- 2.传递触摸消息到程序中view和其他对象
- 3.与UIViewController协同工作,方便完成设备方向旋转的支持
二、通常我们可以采取两种方法将view添加到UIWindow中:
1.addSubview
直接将view通过addSubview方式添加到window中,程序负责维护view的生命周期以及刷新,但是并不会为去理会view对应的ViewController,因此采用这种方法将view添加到window以后,我们还要保持view对应的ViewController的有效性,不能过早释放。
2.rootViewController
rootViewController时UIWindow的一个遍历方法,通过设置该属性为要添加view对应的ViewController,UIWindow将会自动将其view添加到当前window中,同时负责ViewController和view的生命周期的维护,防止其过早释放
三、其他说明
1.didFinishLaunchingWithOptions(当程序框架初始化成功后,调用这个这函数来初始化整个程序框架结构(整个程序对IOS开发工程师的入口函数))
2.Window、Screen、View Controller、 UIView之间的关系
设置
//在didFinishLaunchingWithOptions函数下
//初始化
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//设置Window的根控制器
self.window.rootViewController = (UITabBarController / UIViewController...*)tb;
//使window显示到屏幕
[self.window makeKeyAndVisible];