自定义UIViewController与xib文件关系深入分析

转载 2012年03月26日 13:34:30

from:http://www.cocoachina.com/bbs/read.php?tid=38766&page=2


自定义UIViewController与xib文件关系深入分析

用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;

自定义UIViewController与xib文件关系深入分析

自定义UIViewController与xib文件关系深入分析                分类:            iPhone Tutorial2011-08-31 17:10...
  • u014766462
  • u014766462
  • 2014年11月27日 15:01
  • 210

在一个uiViewController中加载一个通过xib创建的uiView,结果界面不正确

背景:我有一个uiViewController,是创建的时候带有xib的,需要在这个VC的view上再加一个uiView,而这个uiView是也是通过xib创建的,在xib中画了几个控件,之间有约束,...
  • wangfeng2500
  • wangfeng2500
  • 2015年11月05日 00:26
  • 1089

iOS 添加Xib文件,并与控制器view controller关联

目前在我们的项目中主要有xib,storyboard,纯代码 三种方法。对于程序员用哪种方法比较好,一直以来业内也争论不休。 我个人认为,它们各有裨益,用哪种方法要根据个人的情况。对于初入门的程序员来...
  • sharmir
  • sharmir
  • 2016年01月29日 12:20
  • 12946

IOS开发 使用XIB自定义一个UIView

原文:http://blog.csdn.net/developer_zhang/article/details/8953640 1 前言 Xcode中集成的BI中的控件十分...
  • sqc3375177
  • sqc3375177
  • 2013年11月19日 11:23
  • 62694

使用XIB自定义一个UIView,然后将这个view添加到controller的view 上(相当于所有界面都通过xib来实现)

一、新建一个single view application类型的iOS application工程,名字取为CustomView,如下图,我们不往CustomViewViewController.xi...
  • Tony_18736165317
  • Tony_18736165317
  • 2016年01月11日 14:09
  • 1157

iOS开发之旅之UIViewController解析

就iOS开发来说,UIViewController就最核心的类型之一。而iOS的整个UI开发的核心思想也是MVC的架构,从UIViewController的命名就可以看出它在MVC中所扮演的角色...
  • bboyfeiyu
  • bboyfeiyu
  • 2014年12月01日 10:28
  • 7535

用xib自定义UIView

常用xib的基本上都是UITableViewCell,今天动手拖出来个UIView的子类。 打开工程新建一个view:StoryBoardView.新建view不能创建xib,需要手动创建一个xib...
  • GrowingGiant
  • GrowingGiant
  • 2015年02月06日 13:09
  • 1983

iOS回顾笔记(03) -- 自定义View的封装和xib文件的使用详解

iOS回顾笔记(03) -- 自定义View的封装和xib文件的使用详解 iOS开发中,我们常常将一块View封装起来,以便于统一管理内部的子控件。如iOS回顾笔记(02)中的"书"这一自定义Vie...
  • feng020a
  • feng020a
  • 2017年03月06日 15:43
  • 464

使用XIB自定义UIView

这篇帖子主要是讲述如何使用XIB文件自定义UIView的布局。在编程过程中我是习惯纯码+XIB的方式完成对UI的布局,在新建UIViewControl时就会勾选中Also create XIB fil...
  • NSWill
  • NSWill
  • 2015年01月17日 11:54
  • 851

如何使用xib自定义UITableViewCell

如何使用xib自定义UITableViewCellxib文件的创建和添加控件 创建一个xib文件 xib中拖入一个tableViewCell 在将需要添加的控件拖入到cell中 创建一个继承于UITa...
  • u011462377
  • u011462377
  • 2015年09月24日 13:59
  • 1879
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义UIViewController与xib文件关系深入分析
举报原因:
原因补充:

(最多只允许输入30个字)