一.有storyboard的项目创建过程
1.点击程序图标——>2.执行Main函数——>3.执行UIApplicationMain(),根据其第三个和第四个参数创建Application,创建代理,并且把代理设置给application(看配置文件info.plist里面的storyboard的name,根据name找到storyboard),开启一个事件去加载storyboard,当storyboard加载完成,走AppDelegate的didFinishLaunching的回调方法。
四大对象关系:
UIApplocation(Delegate)————>AppDelegate(window)————>UIWindow(rootViewController)————>UIVIewController(view)————>xib \ storyboard 里面的代码
storyboard的加载过程:
1.创建window
2.创建箭头所指向的控制器
3.把控制器设置为UIWindow的rootViewController
4.window显示运行后的界面
[self.window makeKeyAndVisible]:让窗口成为主窗口,并且显示出来
[self.window makeKeyWindow]:让窗口成为主窗口,但不显示
[UIApplication shareApplication].windows :在本应用中打开UIWindow列表
[UIApplication shareApplication].keyWindow :获取应用程序的主窗口
程序中每一个时刻只能有一个UIWindow是keyWindow