程序启动分为两类:1.有storyboard 2.没有storyboard
有storyboard情况下:
1.main函数
2.UIApplicationMain
* 创建UIApplication对象
* 创建UIApplication的delegate对象
3.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)
* 创建UIWindow
* 创建和设置UIWindow的rootViewController
* 显示窗口
没有storyboard情况下:
1.main函数
2.UIApplicationMain
* 创建UIApplication对象
* 创建UIApplication的delegate对象
3.delegate对象开始处理(监听)系统事件(没有storyboard)
* 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法
* 在application:didFinishLaunchingWithOptions:中创建UIWindow
* 创建和设置UIWindow的rootViewController
* 显示窗口
问题:A页面push到B页面. A页面先调用disappear还是B页面先调用willappear?
调用顺序:1.A页面调用willDisappear 2. B页面调用willAppear 3. A页面调用Diddisappear4. B页面调用Diaappear
UIWindowLevel
UIWindow iOS系统为了保证UIAlertView在所有的界面之上,它会临时创建一个新的UIWindow,通过将其UIWindow的UIWindowLevel设置更高,让UIAlertView改在所有的应用界面之上。系统定义的UIWindowLevel一共有三个取值:UIWindowLevelNormal>UIWindowLevelStatusBar>UIWindowLevelAlert