文档章节

initWithNibName 和 loadNibNamed 的区别和联系

今日竹石
 今日竹石
发布于 2014/01/03 10:29
字数 319
阅读 318
收藏 2

    联系可以使用此方法加载用户界面(xib文件)到我们的代码中,这样,可以通过操作这个加载进来的(xib)对象,来操作xib文件内容。

    区别

1. ShowViewController的initWithNibName方法

ShowViewController * showMessage = [[ShowViewController alloc]


                                                initWithNibName:@"ShowViewController" bundle:nil];


            self.showViewController = showMessage;


            [showMessage release];

2.VideoCellController的loadNibNamed方法

NSArray * nib = [[NSBundle mainBundle] loadNibNamed:@"Save3ViewController" 

                                                          owner:self options:nil] ;

self.showViewController = [nib lastObject];

[nib objectAtIndex:0];

总结:

     只看他们初始化,那可能感觉是一样的。但是如果,打开分别看xib的关系的时候,才恍然大悟,原来他们的集成类都不一样。

1. initWithNibName要加载的xib的类为我们定义的视图控制器类 

  loadNibNamed要加载的xib的类为NSOjbect。

(比如:甲,乙都买了一个iPhone,但是,甲的是自己的钱,而乙用的是某某的钱)

2.加载方式不同

 initWithNibName方法:是延迟加载,这个View上的控件是 nil 的,只有到 需要显示时,才会不是 nil

loadNibNamed方法:即时加载,用该方法加载的xib对象中的各个元素都已经存在。

(认真理解这句帮规:when using loadNibNamed:owner:options:, the File's Owner should be NSObject, the main view should be your class type, and all outlets should be hooked up to the view, not the File's Owner.)



© 著作权归作者所有

共有 人打赏支持
今日竹石
粉丝 41
博文 227
码字总数 181312
作品 0
朝阳
程序员
私信 提问
IOS 之 NSBundle 使用

IOS开发的时候,经常看到这样的代码, [[NSBundle mainBundle] pathForResource:@"someFileName" ofType:@"yourFileExtension"]; [YourViewController initWithNibName:"YourViewController......

广州英趣科技
2013/02/03
0
0
Iphone 开发笔记(有点乱,零碎,脑子记忆力不好,只好写下来了。。,大部分内容都是word...

Iphone 开发笔记 ///////////////////////////////////////////////////////////////// // 基本框架 ///////////////////////////////////////////////////////////////// 基本框架: Librar......

metRooooo
2012/06/08
0
5
KVO 实现两个页面之间的通信

实现功能描述(简单说明):在图1中结算页面点击相关控件(如图1中橙色方框标注的位置),推出图2地址选择页面或者图3所示的发票台头填写页面。 图1 结算 图2 地址选择 图3 输入发票台头 说明...

木木情深
2014/01/15
0
0
UITabBarController 的两种初始化

在deletegate.m里用代码生成的TabBarController 其中: 1、viewController = [[ViewController alloc]init]; viewController.m里 -(id)init{ if((self=[super init])){ self.tabBarItem.imag......

GIFCOOL
2013/09/03
0
0
UIViewController各个方法的加载顺序

加载过程: 一般情况下调用 init方法或者调用initWithNibName方法实例化UIViewController, 不管调用哪个方法都为调用initWithNibName(方法定义如下) - (id)initWithNibName:(NSString )nibNam...

张志浩
2012/08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

AWS自动部署工具codedeploy的部署概述

1)在AWS lambda平台上部署: 三大部分:要部署的内容 --> 部署的配置 --> 更新的lambda函数版本 部署的流程:上传修订的应用程序-->创建一个应用程序-->指定部署组-->指定部署的配置-->指定...

守护-创造
16分钟前
0
0
好程序员教程分享Javascript设计模式

好程序员教程分享Javascript设计模式 方法一 对象字面量表示法   在对象字面量表示法中,一个对象被描述为一组包含在大括号中,以逗号分隔的 name/value 对。对象内的名称可以是字符串或标...

好程序员IT
22分钟前
1
0
fail-fast和fail-safe的介绍和区别

fail-fast和fail-safe 前言 前段时间公司招的实习生在使用迭代器遍历的时候,对集合内容进行了修改,从而抛出ConcurrentModificationException. 然后给他讲解之余也整理了这一篇文章. fail-fa...

群星纪元
23分钟前
2
0
控制反转 IOC

控制反转(Inversion of Control,缩写为IoC)面向对象设计原则,降低代码耦合度 依赖注入(Dependency Injection,简称DI) 依赖查找(Dependency Lookup):容器提供回调接口和上下文条件给...

SibylY
35分钟前
1
0
网络介绍:Kubernetes设计文档

模型和动机 Kubernetes从Docker默认的网络模型中独立出来形成一套自己的网络模型。该网络模型的目标是:每一个pod都拥有一个扁平化共享网络命名空间的IP,通过该IP,pod就能够跨网络与其它物...

xiangyunyan
36分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部