iOS 程序启动步骤以及原理

UIApplicationMain

1.创建UIApplication

2.创建UIApplicationDelegate,并且成为UIApplication代理

3.开启主运行循环,保持程序一直在运行

4.加载info.plist,判断有没有指定main.stroyboard,指定了就加载

**加载main.stroyboard做的事情

*1.创建窗口

*2.加载main.storyboard,并且加载main.storyboard指定的控制器

*3.把新创建的控制器作为窗口的跟控制器,让窗口显示出来

*/

//关于UIWindow

// 1.创建窗口,注意窗口必须要有尺寸,尺寸跟屏幕一样大的尺寸,窗口不要被释放

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

//self.window.backgroundColor = [UIColor redColor];

// 2.创建窗口的跟控制器

UIViewController *vc = [[UIViewController alloc] init];

vc.view.backgroundColor = [UIColor yellowColor];

[vc.view addSubview:[UIButton buttonWithType:UIButtonTypeContactAdd]];

// 如果设置窗口的跟控制器,默认就会把控制器的view添加到窗口上

// 设置窗口的跟控制器,默认就有旋转功能 所以不用 :    [self.window addSubview:vc.view];

而用:

self.window.rootViewController = vc;

// 3.显示窗口

[self.window makeKeyAndVisible];

底层实现原理:

// makeKeyAndVisible:成为app的主窗口并且显示(所以我们通过UIApplication拿到主窗口)

//    self.window.hidden = YES;

注意:窗口:键盘,状态栏也是窗口

// 窗口是有层级关系

// UIWindowLevelNormal < UIWindowLevelStatusBar < UIWindowLevelAlert

你可能感兴趣的:(iOS 程序启动步骤以及原理)