对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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://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:43
  • 15241

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

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

理解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:16
  • 7284

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

继续上篇iOS AutoLayout: 关联 Xib 和 UIView博客唠叨.新定义一个 UIView 子类, 名字为 Custom2新建 xib 文件, 这里取名为 Custom2.xib看一下视...
  • AndroidBluetooth
  • AndroidBluetooth
  • 2016-06-09 14:46:39
  • 1512

nib 加载过程分析以及对File’s Owner的理解

nib loading的过程,这个是app文档里面有说到资源编程指南 1. It loads the contents of the nib file and any referenced re...
  • whf727
  • whf727
  • 2013-08-09 11:24:03
  • 8510

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

ios 开发file's owner以及outlet与连线的理解
  • ppdyhappy
  • ppdyhappy
  • 2016-06-18 16:58:13
  • 844

File's Owner的理解

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

IOS开发学习之自定义XIB的使用

刚学习IOS开发时的图书是推荐使用StoryBoard进行界面布局的,但是自己摸索一段时间发现XIB用起来更方便,尤其是自定义界面的时候,Storyboard更适合一个人完成小东西,可以自己很清晰和方...
  • qq_26194487
  • qq_26194487
  • 2016-03-02 14:19:57
  • 269

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

iPhone开发广义上来讲,采用MVC模型,即Model-View-Controller。其中:         Model为数据模型,比如用户配置文件;         View为显示的界面元素...
  • donhao
  • donhao
  • 2011-12-20 16:47:00
  • 11846

xib中的 File's Owner的的理解

这两天在做 UI的美化,然后还牵扯到适配iPhone和iPad,索性把之前的布局全部改为xib,这其中就出现了在已有的.h 和 .m的基础上新创建xib文件,刚开始没注意,但是在一个页面跳转传值时遇到...
  • sch1111878
  • sch1111878
  • 2015-03-10 14:22:48
  • 1154
收藏助手
不良信息举报
您举报文章:对xib/nib, file's owner, first responder的理解
举报原因:
原因补充:

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