2012-07-07 90 views
27

当我尝试创建厦门国际银行和文件的所有者之间的连接,有几种类型可供选择:插座连接和动作连接有什么区别?

  • 出口连接
  • 动作连接
  • 出口集合连接

什么所有这些之间的区别?

+1

出口从您的视图控制器e.g给出的数据,如果你设置了标签文本。从视图向您控制器报告操作。例如,如果你点击一个按钮。 (TouchUpInside事件) – lukaskrieger 2012-07-07 11:17:09

回答

0

插座连接:是连接一个属性或实例变量,形成电流文件所有者实例的XIB,当该XIB将被反序列化连接将被以文件的所有者对象

出口作用而变为:是添加目标/动作从XIB指定出口(视图)的所有者类

出口集合:类似于一个出口,但它的视图的阵列连接到单个出口变种

2

出口为您的类(通常是视图控制器)提供对xib中子视图的引用。 当用户激活时,该操作提供了一个方法,以便由控件(通常也是xib上的子视图)调用。

换句话说,出口给obj-c代码访问IB中的对象;而这个动作给xib控件访问obj-c代码。

+0

你可以说他们提供'相反方向的桥梁'。 – 2012-07-07 11:29:23

35

Outlet和Action是ViewController与其View交互的方式(或连接/中介)。虽然他们在iOS认识的最初几天可能看起来相似,但它们用于不同的目的:

插座ViewController talks to View by using Outlet。 View中的任何对象(UILabel,UIButton,UIImage,UIView等)都可以有一个Outlet连接到ViewController。 Outlet在ViewController中用作@property,这意味着:
- 您可以使用插口设置对象(如更新UILabel的文本,设置UIView的背景图像等)。
- 你可以从一个对象得到的东西(如UIStepper的电流值,NSAttributedString等当前字体大小)

行动View pass on messages about view to ViewController by using Action(或者在技术方面的ViewController在查看设置本身Target任何Action )。在ViewController中的操作是Method(不像Outlet,它在ViewController中是@property)。每当有东西(任何Event)发生在一个对象(例如UIbutton被挖掘)时,Action将消息传递给ViewController。 Action(或Action方法)在收到消息后可以做些什么。
注意:操作只能由UIControl的子对象设置;意味着你不能设置的Action的UILabel,UIView的等

其中\何时使用插座或行动:
在iOS的熟人的最初几天其完全正常的获取动作和出口及其用法之间的混淆。有几件小事情(比如获取文本/按钮的标题)可以通过Outlet和Action来完成,但是否则它们是非常不同的。在使用一种或其他方法时,请牢记以上几点。

+1

那么你是说Outlet只是在View和View控制器之间共享的一个属性,并且一个Action将View中的消息发送到View控制器? – rbp 2013-07-19 13:37:02

+1

属性只是2个访问器方法(getter和setter方法)的一个外观,而outlet也设置并从View中获取值,因此将outlet作为属性并不会出错。注意:IBOutlet是Xcode在编辑器中提醒Xcode,这不仅仅是一个随机的@property,它是一个插座(即与视图的连接)。编译器会忽略它。 – 2013-07-20 06:51:50

7

插座用于想要更改控件的某些属性,即文本颜色或标签的文本大小。

虽然动作用于想要检测触发器,即按下按钮时。

1

Outlet & Action visualisation

出口和动作连接是一个UIViewController可与其UView沟通直接的方式。例如,当视图控制器需要设置UILabel的文本时,它会通过插座连接进行。当点击一个View的UIButton对象时,它通过使用动作连接将消息传递给View Controller。这意味着在View Controller中创建的插件被声明为@property,并且通过声明一个方法来创建一个动作。

插座连接是在您需要将代码中的消息发送到Xcode故事板中的用户界面对象时创建的。该对象可以是控件,如按钮,滑块和开关,也可以是故事板中定义的任何其他对象,如标签和进度条。例如,当您的代码确定某个标签应显示某些文本时,该代码将通过该插口发送一条消息,通知标签显示新文本。

动作连接是在您需要从故事板中的控件向您的代码发送消息时创建的。控件是一个用户界面对象,当用户操作对象时会导致操作或可见结果。例如,当用户点击一个按钮时,该按钮会向您的代码发送一条操作消息,告诉它执行适当的方法。可用于创建动作连接的控件的其他示例包括文本字段,滑块和开关。

参考文献:1. https://medium.com/@GanChau/outlet-vs-action-connections-in-xcode-b5331fb233a1