没有合适的资源?快使用搜索试试~ 我知道了~
UIViewController的加载方式和UIView的加载详解
需积分: 25 8 下载量 195 浏览量
2017-10-11
20:35:30
上传
评论
收藏 582KB PDF 举报
温馨提示
试读
1页
iOS, UIViewController, UIView, UIViewController的加载方式和UIView的加载详解
资源推荐
资源详情
资源评论
1.控制的创建式有三种
(1).通过alloc法创建
FirstViewController *first = [[FirstViewController alloc] init];
(2)通过storyboard加载
{
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *controller = [storyBoard instantiateInitialViewController];//(1)
UIViewController *controller1 = [storyBoard instantiateViewControllerWithIdentifier:@"controller"];//(2)
注释:先获取storyboard对象, [UIStoryboard storyboardWithName:@"Main" bundle:nil]这个法传递两个参数,个是storyboard的名
字,个是件录,这传nil默认就是当前当前录,
式(1)获取的controller是storyboard的初始化控制(箭头指向的控制);式(2)是根据storyboard控制的identifier属性
来创建个指定的控制。
}
(2)指定XIB来创建个控制
FirstViewController *first = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:
[NSBundle mainBundle]];
2.控制View的创建
下张图解释控制创建view的式:
看上图:
控制会先看有没有实现loadView这个法(loadView这个法是苹果为开发员提供的定义view的法,开发员可以在这个法创建controller的
view,控制在加载view的时候,如果loadView法实现,会先调这个法来加载View,然后返回View)。如果没有实现loadView法,再去看
是是根据storyboard来创建控制的view的,如果是的,就根据storyboard的描述去加载对应的View;如果是的就看创建控制的时候有没有制定
XIB件的名字,如果有指定,就去根据指定的XIB件的描述来创建View,如果没有指定,系统会默认先去寻找控制类名去掉controller的名字(
如:FirstViewController,就去找FirstView.xib)这个xib件,根据这个xib件的描述来创建view,如果没有就去寻找以控制类名为名(如
FirstViewController,就找FirstViewController.xib件)的xib件来创建view,如果都没有就创建个空的View。所以说创建控制的View的时候,系统会
按照默认的顺序和优先级来选择种式创建View.
注意:创建XIB件的时候要和控制的类名相类似,这样可能会出现些错误。
控制View的延时加载:
只有需要到控制的View的时候,才会去加载View;
如:
UINavigationController *controller = [[UINavigationController alloc]init];//第步
controller.view.backgroundColor = [UIColor whiteColor];//第步
如上的代码中,第步只是创建个导航控制,并没有加载它的view,当第步要改变它的view的背景颜的时候,这个时候要到它的view,这个
时候才会去加载View,这个就称之为view 的延时加载.
资源评论
xiaobis
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功