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

ios开发之控制器View的多种创建 -- 详解

2015-08-20 08:42 513 查看
昨天我写了那个控制器的多种创建方式,今天我也就趁热打铁,把控制器View的多种创建方式也说一下吧, 详情分析一下控制器的View的加载过程。

1. 通过xib加载

通过xib也有很多加载方式的,我先说说最简单,明确的加载方式,为了方便阅读和理解,我还是配上截图来解释。

* 直接通过xib的完整名称

> 首先先创建一个自定义的控制器(OneViewController)注意:我这里的控制器名称,即下面xib的名称



> 接着就创建一个xib





> 设置TextView的各个属性来与待会的其他view加以区分,然后配置TextView 的File's Owner的class 以及他的view连线 使之可以被控制器加载view



然后在相应的位置填写代码, 如下图



然后运行就完成指定xib的创建了, 效果如下



* 现在我们再另外创建两个新的xib 注意其名称(OneView,OneViewController )和我们控制器的名称(OneViewController)

* 创建完 也要和上一个样设置自己的属性 和File's Owner的class 为我们的控制器(OneViewController) 以及连接View






> 接下来我们来修改我们刚才的代码 把

initWithNibName:@"TextView" bundle:nil 改为 init



然后运行, 结果如下



上图加载的这个view 就是我们的OneView.xib的view

现在我们把OneView.xib的文件删了, 然后清除一下程序(command + shift +K)然后再次运行程序(command + R)



结果如下



上图的view就是我们OneViewController.xib的view

跟上面一样,现在我们把OneViewController.xib的文件删了,
然后清除一下程序(command + shift +K)然后再次运行程序(command + R)结果如下



上面是系统自己创建了应该“空白”的view, “空白”就是什么也没有, 之所以是黑色是因为我们的window的背景颜色为黑,
现在我们设置我们控制器的view为红色来证明它被创建了,然后运行



效果如下



现在我们来重写控制器的 - (void)loadView;方法



然后运行, 效果如下, 说明系统可以通过-(void)loadView这个方法来创建view的



好了, 演示到现在,我就总结一下控制器view的具体加载顺序

首先系统调用控制器的loadView方法去创建,如果没有就会去调用storyBodard; 切记(这里的stroryBoard)如果是本来就有的,就只能用于系统自己创建的viewController控制器, 本次例子都是在自定义的控制器(OneViewController)下创建的View, 因为我们并没有创建自定义的storyboard文件,所以就会自己查找并加载xib的文件,如我们在代码指定了xib的文件名称,就会根据nibName对应的xib的描述去创建,
如果我们的代码是用init实力化对象的话, 系统会先根据自定义控制器(OneViewController)的名称去掉Controller的名称的xib(OneView.xib),根据OneView.xib的描述去创建, 如没有该文件,就会查找与自定义控制器名称一样的xib文件(OneViewController.xib),然后根据OneViewController.xib的描述去创建。 如果还是没有该文件的话,系统就会自己创建一个空白的View。

请注意:我上面的文字描述是根据我自己的实例描述的, 我自定义的控制器名称为OneViewConteroller, 而下面的辅助图中是控制器HMViewController的view的创建, 原理都是一样的

HMViewControllerview创建



如果需要源代码的可以到下面的百度云链接下载:

链接: http://pan.baidu.com/s/1pJmoAKF 密码: sng2

感谢你们的阅读! 希望我们共同努力, 共同进步!

你们的评论是对我的最大支持!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: