第十三章 UIWindow
UIWindow是一种特殊的UIView,通常一个app中有一个UIWindow
iOS程序启动完毕,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器view就显示上了屏幕上了。 一个iOS程序之所以能够显示,就是因为有UIWindow
// 新建窗口
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
// 创建窗口跟控制器
ViewController * view = [[ViewController alloc] init];
view.view.backgroundColor = [UIColor redColor];
// 使用rootViewController,而不是直接addSubView,是因为root的话可以带有窗口旋转功能
self.window.rootViewController = view;
// 显示窗口
// makeKeyAndVisible:成为app程序的主窗口,
[self.window makeKeyAndVisible];
application.keyWindow :是可以拿到app的主窗口的
application.windows:显示app一共有几个窗口
窗口:键盘,状态栏都是窗口
提示框不是窗口
- 代码加载storyboard方法
/**
* 完成启动的时候调用
*/
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 新建窗口
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
// 创建storyboard
// nil:就是默认为[NSBundle MainBundle];
UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
// 创建窗口跟控制器
ViewController * view = [storyboard instantiateInitialViewController];
view.view.backgroundColor = [UIColor redColor];
self.window.rootViewController = view;
// 显示窗口
[self.window makeKeyAndVisible];
return YES;
}
// 可在一个storyboard中间创建多个viewController,我们取出来的时候调用,需要在stryboard中设置标识符
ViewController * view = [storyboard instantiateViewControllerWithIdentifier:@"cell"];