对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是小范...
  • xn4545945
  • xn4545945
  • 2014年06月17日 17:44
  • 14790

理解xib(nib)、File’s Owner、First Responder、outlet、action等概念

理解xib(nib)、File’s Owner、First Responder、outlet、action等概念 xib(nib): 都是一些对象的描述,类似与VC的.rc资源文件。nib是二进制...
  • jjunjoe
  • jjunjoe
  • 2013年02月06日 16:55
  • 7158

File's Owner的理解

1. XIB文件的理解         通过IB设计的CnView和EnView分别对应一个XIB文件,在CnView的XIB文件中,主要采用XML格式描述了Button和Label控件的属性(这里...
  • intheair100
  • intheair100
  • 2014年07月04日 21:22
  • 733

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

一、XIB的适用范围xib(也叫Nib)与storyboard一样是用来描述界面的。 storyboard描述的是比较大型的,大范围.适合描述界面跳转等.二、XIB的使用Xib是小范围的的,是轻量级...
  • Hanrovey
  • Hanrovey
  • 2016年08月14日 00:02
  • 1672

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

一、XIB的适用范围xib(也叫Nib)与storyboard一样是用来描述界面的。 storyboard描述的是比较大型的,大范围.适合描述界面跳转等.二、XIB的使用Xib是小范围的的,是轻量级...
  • Hanrovey
  • Hanrovey
  • 2016年08月14日 00:02
  • 1672

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

一、XIB的适用范围 xib(也叫Nib)与storyboard一样是用来描述界面的。 storyboard描述的是比较大型的, 大范围.适合描述界面跳转等. 二、XIB的使用 Xib是小范...
  • xn4545945
  • xn4545945
  • 2014年06月17日 17:44
  • 14790

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

ios 开发file's owner以及outlet与连线的理解
  • ppdyhappy
  • ppdyhappy
  • 2016年06月18日 16:58
  • 679

xib中的 File's Owner的的理解

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

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

xib文件本身可以看做是一个xml,app启动的时候会根据xml构造xib对应的界面及其控件,file's owner 可以看做是 xib对应的类,比如 view对应的xib文件的file'owner...
  • xty_seven
  • xty_seven
  • 2013年11月20日 16:13
  • 638

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

http://www.cnblogs.com/martin1009/archive/2012/06/01/2531028.html xib文件本身可以看做是一个xml,app启动的时...
  • sinat_30672189
  • sinat_30672189
  • 2015年09月21日 17:59
  • 125
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对xib/nib, file's owner, first responder的理解
举报原因:
原因补充:

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