iOS-了解App的启动过程

来源:互联网 发布:四川旅游学院教务网络 编辑:程序博客网 时间:2024/05/22 04:43

首先我们要知道,一个App之所以能够显示在屏幕上,是因为App有一个UIWindow,我们通过在UIWindow上面添加UIView使得App有了显示的界面

那么需要注意的是:我们虽然可以直接在UIWindow上添加UIView但是由于App常用的设计模式为MVC,所以我门一般把自定义的控制器赋值给UIWindow的rootViewController属性,下面是我个人总结的一些:


为什么要在UIWindow中设置rootViewController?

答:

1.如果直接添加UIView到UIWindow,没有强指针指向UIView的控制器,控制器会被销毁
2.当系统发生一些事件例如旋转屏幕方向时,UIWindow会通知他的rootViewController
没有的话不会响应旋转
补充知识:
键盘弹出时实际上是键盘倍嵌套在UIWindow上显示到我们当前的UIWindow或者UIView上
如果要修改键盘上的某个按钮首先要获得键盘所在的这个UIWindow再做修改


那么既然我们知道要先创建一个自定义的UIViewController,就了解一下创建UIViewController有哪些途径:

创建UIViewController的方式
1.代码alloc init一个UIViewController
2.通过storyboard的箭头创建一个UIViewController
   通过storyboard的UIViewController的Identifier属性
3.通过xib创建UIViewController,在xib的File’s Owner属性设置UIViewController
   连线File’s Owner的View属性到xib的一个UIView

之后要给UIViewController设置一个UIView,就了解一下UIView的创建途径:

创建UIViewController的UIView
1.通过storyboard描述
2.通过xib描述并连线
3.通过代码

注意把UIView赋值给UIViewController的几点知识:

⚠加载控制器的UIViewController时优先会找到loadView方法
有loadView方法会根据loadView方法加载此控制器的UIView
没有loadView才会去xib或者storyboard中寻找加载
⚠在没有loadView方法也没有storyboard的时候会去查找nibName属性
没有nibName会自动查找根控制器相关的去掉Controller.xib文件加载
如果连去掉Controller.xib文件都没有就去找控制器同名的.xib文件加载
什么都没有的话才会创建一个空白的UIView
0 0
原创粉丝点击