iOS学习之视图加载过程中会触发的方法(loadView/viewDidLoad/didReceiveMemoryWarning)
1.loadView
这是视图控制器用来加载根视图的方法;
如果需要将自定义的视图作为根视图,则不需要调用父类对该方法的实现([super loadView]);直接将自定义视图通过self.view定义为视图控制器的根视图;
自定义视图中的简单响应事件也应由视图控制器来进行处理,写在此方法内;
2.viewDIdLoad
当视图控制器的根视图加载完成之后触发该方法;(也就是loadView调用完成之后会立即调用该方法);
需要调用父类对该方法的实现;
该方法可以对根视图进行简单的一些设置,比如背景颜色等等;
3.viewWillAppear:(BOOL)animated; //当视图控制器的根视图将要显示时触发;
4.viewDidAppear:(BOOL)animated; //当视图控制器的根视图显示时触发;
5.viewWillDisappear:(BOOL)animated; //当视图控制器的根视图将要消失时触发;
6.viewDidDisappear:(BOOL)animated; //当视图控制器的根视图消失时触发;
7.didReceiveMemoryWarning;//当收到内存警告时触发, 此时需要释放掉暂时不使用的资源,以及可重建对象;
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
if ([self isViewLoaded] && !self.view.window) {
self.view = nil;
}
}
//[self isViewLoaded] 看视图是否已经加载了
//self.view.window 看根视图有没有在window上展示
#pragma mark -- 和屏幕旋转相关的方法
8.设置当设备发生旋转时,当前界面是否发生变化,支持旋转
- (BOOL)shouldAutorotate {
return YES;
}
9.设置当前界面支持的旋转的方向. 必须要依赖于当前应用程序支持的方向;
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll;//支持所有方向
}
10.当屏幕旋转时触发,iOS8之后有效
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
//size 表示旋转之后的屏幕的尺寸;
NSLog(@"%@",NSStringFromCGSize(size)); //输出此时的屏幕尺寸;
}
关于调用父类的方法:
//父类对该方法的实现,可以用来帮助我们对视图进行一些初始化(有些初始化工作我们是不知道的,也看不到,所以一定要调用);
//当重写从父类继承过来的方法时,如果不知道父类对该方法是如何实现的,记得要使用super调用该方法的实现;
关于方法中的[super xxx]调用父类的方法,如果不需要额外添加内容,有参数的直接return YES就行了.
//补充一个:
-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;
这是视图控制器的指定初始化方法,无论调用哪个方法,改初始化方法都会被触发;
-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
//完成本类独有的初始化操作.
}
return self;
}
iOS学习之视图加载过程中会触发的方法(loadView/viewDidLoad/didReceiveMemoryWarning)的更多相关文章
- iOS控制器与视图加载方法
转载记录, 请看原文: 1. iOS中的各种加载方法(initWithNibName,loadNibNamed,initWithCoder,awakeFromNib等等)简单使用 http://w ...
- IOS 应用程序启动加载过程(从点击图标到界面显示)
今天帮同事解决问题的时候发现,程序BUG是由加载过程引起的.所以当局部代码没有问题,但是程序一运行却总不是我们想要结果的时候,我们应该想想是不是因为我们忽略了试图加载过程的原因.下面我们用一个例子来简 ...
- DOM加载过程中ready和load的区别
在浏览器地址栏输入URL地址,浏览器开始加载页面时,有以下几个过程 1.浏览器开始解析HTML文档 2. 浏览器遇到HTML文档中的<script>元素以及CSS样式文件,并且没有asyn ...
- iOS学习之懒加载
懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,其实是重写getter方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 使用懒 ...
- css3实现loading效果--当页面加载过程中显示Loading的进度条,全部加载完成之后进度条消失
一个页面等图片资源全部加载完成,会需要很长时间,用户体验会很差,所以我们需要loading来掩盖这个漫长的过程! emmm,定时器?写个定时器还要清除,万一造成内存泄露?定时器之间还会互相影响,呼呼呼 ...
- WPF 大数据加载过程中的等待效果——圆圈转动
大家肯定遇到过或将要遇到加载大数据的时候,如果出现长时间的空白等待,一般人的概念会是:难道卡死了? 作为一个懂技术的挨踢技术,即使你明知道数据量太大正在加载,但是假如看不到任何动静,自己觉得还是一种很 ...
- spring加载过程中jar包加载不了,解决方法
当我们在开发spring项目时,一般会将jar包放到webInf/lib下,这样是myeclipse自动将jar包加载到tomcat中webapps下,但是当我们新建一个lib文件夹的情况下,我们ad ...
- 在程序加载过程中显示ProgressDialog 对话框
private ProgressDialog mProgressDlg = null; @Override protected void onCreate(Bundle savedInstanceSt ...
- 输入 URL 到页面完成加载过程中的所有发生的事情?
转到浏览器中输入URL给你一个页面后,.有些事情,你每天都在使用,学的是计算机网络知道是怎么回事.DNS解析然后页面的回馈,只是要讲好还是有难度. 之前fex团队的nwind专门写过这个问题的博客: ...
随机推荐
- iOS应用崩溃日志分析-备用
作为一名应用开发者,你是否有过如下经历? 为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作.它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会闪退 ! ...
- Keil C调试经验
我们使用Keil C调试某系统时积累的一些经验: 1.由于Keil C对中文支持不太好,因而会出现显示的光标与光标实际所在不一致的现象,这会对修改中文注释造成影响.在Windows2000下面 ...
- 在WPF中使用AForge.net控制摄像头拍照
原文:在WPF中使用AForge.net控制摄像头拍照 利用AForge.net控制摄像头拍照最方便的方法就是利用PictureBox显示摄像头画面,但在WPF中不能直接使用PictureBox.必须 ...
- java,C#接口与C++的虚基类
看C#的接口感觉就像C++中继承并实现虚基类的函数方法一样,是OOP编程中表现多态的一种方式.可以参考下面的文章: http://blog.sina.com.cn/s/blog_60ff8f1b010 ...
- JAVA常用类库简介(转)
Java编程语言中为方便学习者学习,编制了许多类,这些类已经经过测试,都是我们编程的基础.如果不利用这些已存在的类,我们的编程工作将变得异常复杂并且效率低下.所以我们应尽可能多的掌握Java基本类库的 ...
- BZOJ2751: [HAOI2012]容易题(easy)
2751: [HAOI2012]容易题(easy) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 872 Solved: 377[Submit][S ...
- 算法导论(第三版)Exercises4.2(第四章二节)
4.2-1(计算结果) 18 14 62 66 4.2-2(Strassen算法计算矩阵乘法) void multiplyMatrix(int a[], int b[], int n, int r ...
- 【转】AAC ADTS格式分析
1.ADTS是个啥 ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式. 记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽 ...
- NetAnalyzer笔记 之 七 NetAnalyzer2016使用方法(1)
[创建时间:2016-04-17 14:47:00] NetAnalyzer下载地址 距离新本的NetAnalyzer已经发布一段时间了,因为比较忙期间只出了一个视频教程,一直没有来的急写文档,今天就 ...
- linux系统批量无人值守安装
一:批量无人值守安安装原理 利用DHCP TFTP FTP和PXE技术实现批量安装系统,首先在主server上安装好DHCP TFTP和FTP服务,client通过网卡的PXE技术获取到IP地址和TF ...