使用视图控制器的步骤:
1、创建一个根视图控制器 aController
2、在AppDelegate中引用aController的头文件,并且指定AppDelegate的根视图控制器为aController,代码如图:
3、设置了AppDelegate的根视图控制器,但是aController视图控制器的默认视图是空白视图,并且背景色是透明色,所以如果想要显示内容,就有两种方法,一种是:直接在viewDidLoad方法中创建视图,并且添加到根视图上面(viewDidLoad是视图控制器自带的根视图加载完毕的方法)。第二种是:重写加载根视图的方法(loadView方法),我们通常在这个方法中指定我们想要的某个视图作为根视图,并且在视图控制器的生命周期,此方法只会走一次,在这个方法中,不能使用self.view的getter方法获取根视图。因为此视图正在加载,并没有真实存在
4、通常我们用第二种方法,因为第二种方法,分工更加的明确,视图只做呈现,控制器只做触发事件
5、用第二种方法的话,我们需要指定一个视图作为aController的根视图,所以创建一个视图作为TA的根视图
6、创建一个自定义视图作为TA的根视图就看第三篇的自定义视图,如创建bView
7、创建好视图之后,在loadView的方法重写中指定自己创建的视图为视图控制器的根视图,记得将其设置成为属性如:
8、可以在viewDidLoad中为视图中的控件添加事件
模态:页面之间的相互转换
页面之间的转换需要两个视图控制器:a,b
1、进入下一个界面b,为视图控制器中的视图中的button添加方法,在方法中先创建下一个界面的对象,在使用模态推出下一个页面,代码:
2、返回上一个界面,只需要在b控制器的视图上的按钮上的方法中写模态返回的一个代码就可以了,代码:
MVC概述:
屏幕检测:
1、设置设备支持旋转的方向,倒屏不作处理,默认是横屏还有正屏都支持。
方法:在视图控制器中重写supportedInterfaceOrientations方法,返回值是一个枚举值如:
2、设备在转化方向时和后执行的方法,在视图控制器中重写viewWillTransitionToSize:withTransitionCoordinator:,如让屏幕在旋转的时候回收键盘,代码:
3、视图的处理:如在方向会发生变化的视图中,重写layoutSubviews方法,根据设备的方向,重新布局,代码如:
内存警告:
当一个程序的运行内存到达一个值的时候,会调用didReceiveMemoryWarning方法,判断根视图是否已经加载,并且没有显示,如果是的话,把根视图设置为nil,目的是再次进入时能够重新加载调用viewDidLoad函数