控制器View的加载过程
1.控制器内部的view是延迟加载
1> 用到时再加载
2> 加载完毕后会调用控制器的viewDidLoad方法
2.创建控制器的方式
1> 直接通过代码创建
OneViewController *one = [[OneViewController alloc] init];
如果调用init方法创建控制器(TwoViewController),那么在加载控制器view的时候:
a.优先查找 “TwoView.xib”
b.其次再查找 同名 的xib 文件 “TwoViewController.xib”
c.如果没有找到上述的xib文件,会直接通过代码创建一个空白的view
2> 通过storyboard创建控制器
* 加载storyboard文件
UIStoryboard *story = [UIStoryboard storyboardWithName:@"sb的文件名" bundle:nil];
* 从storyboard中创建控制器
// 根据控制器在storyboard文件中storyboard id来创建
OneViewController *one = [story instantiateViewControllerWithIdentifier:@"控制器的storyboard id"];
// 直接创建箭头所指的控制器(initial controller)
OneViewController *one = [story instantiateInitialViewController];
3> 通过xib创建控制器
// 创建控制器的view时,就会加载OneViewController.xib文件,并且会将控制器当做是xib的Owner传入
OneViewController *one = [[OneViewController alloc] initWithNibName:@"OneViewController" bundle:nil];
// 加载one控制器的view:[[NSBunle mainBundle] loadNibName:@"OneViewController" owner:one options:nil];
下面用一张图来清楚的认识控制器View的加载过程。
控制器View的加载过程的更多相关文章
- iOS之深入了解控制器View的加载
前言 在面试中,面试官可能会问这样的问题,loadView有什么作用,它与viewDidLoad有何区别 首先我们得知道,控制器view是通过懒加载的方式进行加载的,即用到的时候再加载. loadVi ...
- 控制器View的加载和内存警告流程图
控制器View的加载 内存警告
- Android View的加载过程
大家都知道Android中加载view是从Activity的onCreate方法调用setContentView开始的,那么View的具体加载过程又是怎么的呢?这一节我们做一下分析. 首先追踪一下代码 ...
- 控制器view的加载顺序initWithNibName >>> viewDidLoad >>> viewWillAppear >>> viewDidAppear
-(void)viewWillAppear:(BOOL)animated { self.navigationController.navigationBarHidden=NO;// 邓超界:放在wil ...
- iOS开发之控制器创建与加载(生命周期)
1.如何创建一个控制器 控制器常见的创建方式有以下几种: (1)通过storyboard创建 (2)直接创建 MJViewController *mj = [[MJViewController all ...
- Android UI之View的加载机制(二)
转载请标明出处:http://blog.csdn.net/sk719887916/article/details/39961201,作者:skay 对于接触安卓开不到一年的自己来说,总结下view的生 ...
- 一步一步重写 CodeIgniter 框架 (6) —— 实现在控制器Controller中加载View
1. 控制器将模型类获得的数据,传递给视图进行显示,所以视图必须负责接收数据,另外重要的一点是当模型和视图分开后,多个模型的数据可以传递给一个视图进行展示,也可以说一个模型的数据在多个不同的视图中进行 ...
- View加载过程
1. 先判断子类是否重写了loadView,如果有直接调用.之后调viewDidLoad完成View的加载.2 .如果是外部通过调用initWithNibName:bundle指定nib文件名的话,V ...
- IOS 应用程序启动加载过程(从点击图标到界面显示)
今天帮同事解决问题的时候发现,程序BUG是由加载过程引起的.所以当局部代码没有问题,但是程序一运行却总不是我们想要结果的时候,我们应该想想是不是因为我们忽略了试图加载过程的原因.下面我们用一个例子来简 ...
随机推荐
- Qt Creator Valgrind内存分析前端(分析Nginx内存)
Linux上使用Qt Creator进行C/C++开发http://my.oschina.net/eechen/blog/166969Qt Creator GDB调试前端(调试Nginx):http: ...
- wikioi3363支线剧情(挖个坑,不会做。。。)
3363 支线剧情 题目描述 Description 宅男JYY非常喜欢玩RPG游戏,比如仙剑,轩辕剑等等.不过JYY喜欢的并不是战斗场景,而是类似电视剧一般的充满恩怨情仇的剧情.这些游戏往往都有很多 ...
- HDU 2255 奔小康赚大钱
题目分析:这个是个KM的模板题. #include<stdio.h> #include<string.h> #include<algorithm> #include ...
- 【转】[Java] HashMap使用的示例
原文网址:http://kings11347.blog.163.com/blog/static/56047032201212895416436/ import java.util.HashMap; i ...
- 数学(矩阵乘法):HDU 4565 So Easy!
So Easy! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- HDU-1207 汉诺塔II
汉诺塔 四根所需要的步数的规律: 规律:a[1]=1;a[2]=a[1]+2;a[3]=a[2]+2;(2个加2^1)a[4]=a[3]+4;a[5]=a[4]+4;a[6]=a[5]+4;(3个加 ...
- UVa 11796 计算几何
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 南京Uber优步司机奖励政策(1月11日~1月17日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- Angular过滤器 自定义及使用方法
首先设置自定义过滤器. 定义模块名:angular .module('myApp') .filter('filterName',function(){ return function(要过滤的对象,参 ...
- LibreOffice连接orcle 11g
1.安装java 2.安装JDBC 官网下载 复制到/usr/java/jdk1.8.0_111/jre/lib/ext文件下