UIViewController与xib文件是如何关联的
2015-03-25 16:19
316 查看
http://blog.csdn.net/devday/article/details/6736458
用xcode模板向工程加入UIViewController sub class的时候,如果选中了with xib for interface,那么就会向工作加入三个文件(.h .m .xib), 这样生成的三个文件除后缀名后都是一样的名字。
现在如果我们需要用这个刚加入的自定义UIVewController,可以如下方式定义:
你可以看现第一个传数是nil, 对没错,传nil也是可以的。因为如果系统发现是nil的话,会在工程的bundle里找与CustomViewController同名的xib文件,因为模版生成的正好名字相同,所以能够正确加载xib文件。
第二种方法:
在这儿我们只是简单的初始化,也能正确加载相应的xib文件,因为他们名字是相同的。
如果xib的名了与类的名字不同呢?
如果不同那么我们就不能用上面的两种方法,必须显示指明xib的名字,如:
在这儿我们显示指明是firstView.xib这个文件。
网上有人说,自定义UITableViewController与自定义UIViewController不一样,即使.h .m .xib文件名一样(除后缀名),也必须显示指明xib的名字。 参看:http://www.outofcore.com/2011/07/ios-development-proper-use-of-initwithnibnamebundle-affects-uitableviewcontroller/
我在xcode4 SDK 4.3上测试了,结果是一样的,也可以不用指明, 我的测试是直接将自定义的controller赋值给windows.rootViewController,如:
不知道是否我测试不够准确,知道的大侠麻烦告诉一下。
用xcode模板向工程加入UIViewController sub class的时候,如果选中了with xib for interface,那么就会向工作加入三个文件(.h .m .xib), 这样生成的三个文件除后缀名后都是一样的名字。
现在如果我们需要用这个刚加入的自定义UIVewController,可以如下方式定义:
CustomViewController* customViewController = [[CustomViewController alloc] initWithNibName:nil bundle:nil];
你可以看现第一个传数是nil, 对没错,传nil也是可以的。因为如果系统发现是nil的话,会在工程的bundle里找与CustomViewController同名的xib文件,因为模版生成的正好名字相同,所以能够正确加载xib文件。
第二种方法:
CustomViewController* customViewController = [[CustomViewController alloc] init];
在这儿我们只是简单的初始化,也能正确加载相应的xib文件,因为他们名字是相同的。
如果xib的名了与类的名字不同呢?
如果不同那么我们就不能用上面的两种方法,必须显示指明xib的名字,如:
CustomViewController* customViewController = [[CustomViewController alloc] initWithNibName:"firstView" bundle:nil]
在这儿我们显示指明是firstView.xib这个文件。
网上有人说,自定义UITableViewController与自定义UIViewController不一样,即使.h .m .xib文件名一样(除后缀名),也必须显示指明xib的名字。 参看:http://www.outofcore.com/2011/07/ios-development-proper-use-of-initwithnibnamebundle-affects-uitableviewcontroller/
我在xcode4 SDK 4.3上测试了,结果是一样的,也可以不用指明, 我的测试是直接将自定义的controller赋值给windows.rootViewController,如:
testTableView *tableView = [[[testTableView alloc] initWithNibName:nil bundle:nil] autorelease]; self.window.rootViewController = tableView;
不知道是否我测试不够准确,知道的大侠麻烦告诉一下。
相关文章推荐
- Multiview Applications(多个xib之前的切换) view controller和xib文件是如何关联在一起的 (手动关联 view controller和xib文件)
- 如何关联一个xib文件和一个类
- iOS中xib文件的关联不上的问题解决
- 教你如何修改文件关联图标
- 用WebView访问证书有问题的SSL网页以及在文件关联窗口中选择浏览器后,浏览器如何识别到该连接地址
- C#如何根据文件格式类型或扩展名来获取关联程序的路径?
- ubuntu如何修改默认的文件关联打开程序 转自:http://blog.csdn.net/blueboy82006/article/details/5305497
- Win7如何取消dll文件关联以防不小心双击结果悲剧
- 关于如何将多个Cpp文件关联起来
- 如何创建自定义的文件类型关联
- 如何关联m文件和Matlab编辑器
- 木马病毒是如何利用文件关联和设置名感染的
- iOS开发,如何让xib关联一个UIView?
- 如何创建自定义的文件类型关联
- Xib文件拖控件关联时候报错:“Could not insert new outlet connection”
- MyBatis映射文件的resultMap如何做表关联
- 如何让两个文件的两个类相互关联
- iOS开发,如何让xib关联一个UIView?
- 分区有的视图怎么自定义,如何关联xib
- 如何用C#开发的程序,打开关联文本文件,并且读取文件