Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

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

$
0
0

通过 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。

作者:huangfei711 发表于2016/12/13 17:02:11 原文链接
阅读:35 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>