步骤
- 在加载完成info.plist 的时候或进行判断是否,设置了main,如果没有就需要自动手动创建;
- 创建窗口的实例化对象,
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
- 创建窗口的跟控制器,并赋值
//对应界面的东西交给 对应的控制器取处理
UIViewController *rootVc =[[UIViewController alloc]init];
// 一旦设置窗口的控制器,就会吧跟控制器view加到window上
self.window.rootViewContrller = rootVc;
- 显示窗口
/*
1. 显示窗口
2. 成为应用程序的主窗口
*/
[self.window makeKeyAndVisiable];
注意:状态栏和键盘是一个窗口;
UIWindow
StoryBoard 创建控制器
UIStoryboard *authStory = [UIStoryboard storyboardWithName:@"Auth" bundle:nil];
LDLoginViewController *vc = [authStory instantiateViewControllerWithIdentifier:@"LDLoginViewController"];
self.window.rootViewController = vc;
// 3.显示窗口
[self.window makeKeyAndVisible];
xib创建控制器
//在这里当xib的名字和控制器的名字相同时 可以直接init
ViewController *vc = [[ViewController alloc] initWithNibName:@"VC" bundle:nil];
viewload
- 当控制器第一次创建的时候调用;
- 只有在想自定义控制器的view的时候才调用;
注意:viewLoad底层实现:判断下有没有指定storyboard,如果有,就会帮你创建storyboard描述的控制器的view,如果没有,创建一个空的view。