对xib/nib, file's owner, first responder的理解

原创 2011年12月20日 16:47:00

iPhone开发广义上来讲,采用MVC模型,即Model-View-Controller。其中:

        Model为数据模型,比如用户配置文件;

        View为显示的界面元素,比如一个按钮;

        Controller为控制器,是Model和View之间进行沟通的桥梁。其中View和Model之间不会直接通信,即Model只能与Controller之间进行彼此通信,View只能与Controller之间进行通信。


在简单的APP中,可以没有Model,为了简单起见,本文不设计Model。


现在假设有两个独立的视图CnView和EnView,CnView和EnView上分别有个Button和Label,对于CnView,一点击Button,Label则显示“您好”,对于EnView则显示“Hello”。下面基于这个例子来回到我们的重点。


1. XIB文件的理解

        通过IB设计的CnView和EnView分别对应一个XIB文件,在CnView的XIB文件中,主要采用XML格式描述了Button和Label控件的属性(这里不考虑View本身的背景等属性),有个Button和Label,以及Button和Label的位置、大小等。EnView的XIB文件类似。

2. ViewController

       每个View对应有个视图控制器(多个View可以采用同一个视图控制器,后边再说),可以看做MVC中的C(尽管严格意义上不是),比如:CnView界面点击按钮之后的响应动作是由ViewController来实现的。

3. XIB和ViewController之间的关系

     XIB是表现,ViewController一方面响应XIB上的操作(比如点击、滑动等),同时也控制XIB的显示。

4. File's Owner

     重点就是这里了,View和ViewController之间的对应关系,需要一个桥梁来进行连接的(即,对于一个视图,他如何知道自己的界面的操作应该由谁来响应),这个桥梁就是File's Owner。

     选中某个XIB的File's Owner,在Inspector中可以看到属性:File Name和Custom Class,该File's Owner就是用来绑定File Name中的xib文件和Custom Class中的ViewController的,在做了这个绑定之后,按住control键,拖动File's Owner到xib中的某个控件的时候,就是Custom Class中定义的IBOutlet元素与xib中元素进行连接的过程,同样,拖动"xib中的控件的动作"到File's Owner的时候,就是将xib中该动作的响应与Custom Class中某个IBAction进行连接的过程。

     因此,在存在多个xib文件的情况下,即:有多个View,那么每个View可以采用不同的ViewController,也可以全部采用相同的一个ViewController,通过File's Owner进行关联即可。

     其实,File's Owner就是Custom Class类型的对象,而xib中的其他元素都是该对象的成员变量,但是需要手动来关联Custom Class中的成员变量与xib中对象之间的关系。

5. First Responder

     View中每次只会有一个对象与用户进行交互,那么当前交互的对象即为First Responder。比如点击文本框,那么此时文本框就是First Responder。


我的描述不一定正确,也请大家指正。

[转载请注明出处]

原文地址:http://blog.csdn.net/donhao/article/details/7088446

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【iOS】Xib的使用与File'Owner总结

一、XIB的适用范围 xib(也叫Nib)与storyboard一样是用来描述界面的。 storyboard描述的是比较大型的, 大范围.适合描述界面跳转等. 二、XIB的使用 Xib是小范...

【iOS开发】Xib的使用与File's Owner总结

一、XIB的适用范围xib(也叫Nib)与storyboard一样是用来描述界面的。 storyboard描述的是比较大型的,大范围.适合描述界面跳转等.二、XIB的使用Xib是小范围的的,是轻量级...

File's Owner的理解

1. XIB文件的理解         通过IB设计的CnView和EnView分别对应一个XIB文件,在CnView的XIB文件中,主要采用XML格式描述了Button和Label控件的属性(这里...

【iOS】Xib的使用与File'Owner总结

一、XIB的适用范围 xib(也叫Nib)与storyboard一样是用来描述界面的。 storyboard描述的是比较大型的, 大范围.适合描述界面跳转等. 二、XIB的使用 Xib是小范...

xib 种的file's owner&& First Responder

iPhone开发广义上来讲,采用MVC模型,即Model-View-Controller。其中:         Model为数据模型,比如用户配置文件;         View为显示的...

<转>如何理解 File's Owner 与 First Responder

*** xib 文件是什么的缩写? 作用是什么? *** .xib 文件存储 Interface Builder 布局。 NIB 和 XIB 都是 Interface Builde...

xib中的 File's Owner的的理解

这两天在做 UI的美化,然后还牵扯到适配iPhone和iPad,索性把之前的布局全部改为xib,这其中就出现了在已有的.h 和 .m的基础上新创建xib文件,刚开始没注意,但是在一个页面跳转传值时遇到...

iOS AutoLayout: UIView 关联 Xib 不设置 File's Owner

继续上篇iOS AutoLayout: 关联 Xib 和 UIView博客唠叨.新定义一个 UIView 子类, 名字为 Custom2新建 xib 文件, 这里取名为 Custom2.xib看一下视...

file's owner以及outlet与连线的理解

xib文件本身可以看做是一个xml,app启动的时候会根据xml构造xib对应的界面及其控件,file's owner 可以看做是 xib对应的类,比如 view对应的xib文件的file'owner...

iphone:file's owner以及outlet与连线的理解

xib文件本身可以看做是一个xml,app启动的时候会根据xml构造xib对应的界面及其控件, file's owner 可以看做是 xib对应的类,比如 view对应的xib文件的file'own...
  • niitlcj
  • niitlcj
  • 2012年02月23日 11:20
  • 2481
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对xib/nib, file's owner, first responder的理解
举报原因:
原因补充:

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