您的位置:首页 > 移动开发 > IOS开发

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

2016-12-13 17:02 316 查看
通过 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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐