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

 昨天我写了那个控制器的多种创建方式,今天我也就趁热打铁,把控制器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

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

你们的评论是对我的最大支持!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值