IOS 之 通过 storyboard 自定义控制器以及 loadView 方法简述

通过 UIStoryboard 对象,就能加载 storyboard 文件。

注意:必须要有 storyboard,创建 UIStoryboard 对象才有意义,alloc init 创建 UIStoryboard 对象没有意义。

两个方法的解析:
(1)instantiateInitialViewController:默认加载箭头指向的控制器;
(2)instantiateViewControllerWithIdentifier:根据标识在storyboard 查找控制器,并且创建。

注意:标识不能乱传,会报错的,必须 storyboard 有这个标识才行。

下图演示模仿系统加载 main.storyboard 的具体步骤:
这里写图片描述
首先将默认的 Main Interface 置为空。

这里写图片描述
由此便模仿了系统对 main.storyboard 的默认加载。

下面讲解一下 loadView 方法的相关知识。

loadView 方法在控制器的 view 为 nil 的时候被调用。此方法用于以编程的方式创建 view 的时候用到。loadView 是使用代码生成视图的时候,当视图第一次载入的时候调用的方法。用于使用写代码来实现控件。用于使用代码生成控件的函数。

1. loadView 作用:一般用来创建自定义的view;

2. loadView 什么时候调用:当控制器的 view 没有创建的时候,就会调用 loadView 去创建控制器的 view;

3. loadView 使用注意:如果重写 loadView 里面没有创建控制器的view,就不能使用 self.view,会造成死循环。

- (void)loadView
{
    self.view.backgroundColor = [UIColor redColor];
    // 此处会产生死循环
    // 原因:self.view 没有获取到控制器的 view,就会调用 loadView 创建控制器的 view,相互调用导致死循环.
}

loadView 底层实现

判断下有没有指定 storyboard,如果有,就会帮你创建 storyboard 描述的控制器的view,如果没有,创建一个空的 view。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值