2012-07-07 14 views
27

Cuando trato de crear una conexión entre xib y el propietario del archivo, hay varios tipos para elegir:¿Cuál es la diferencia entre la conexión de salida y la conexión de acción?

  • conexión de salida
  • conexión acción
  • cobro conexiones de salida

Lo Cuáles son las diferencias entre todos?

+1

presenta una toma de datos de su ViewController por ejemplo si se establece un texto de la etiqueta. Se informa una acción desde View to you Controller. Por ejemplo, si haces clic en un botón. (Evento TouchUpInside) – lukaskrieger

Respuesta

0

Conexión de salida: es conectar una variable de la propiedad o ejemplo, formar la instancia actual de archivos propietario al xib, cuando este xib se puede deserializar la conexión se realizará con el objeto archivos propietario acción

Outlet: es la adición de un objetivo/acción a la salida especificada (vista) de la xib a la clase propietario

colección Outlet: es similar a una toma de corriente, pero se conecta una serie de vistas a una única salida var

2

la salida le da a su clase (generalmente un controlador de vista) una referencia a una vista secundaria en el xib. La acción proporciona un método para ser llamado por un control (generalmente también una vista secundaria en el xib) cuando el usuario lo activa.

En otras palabras, la salida da acceso al código obj-c a un objeto en IB; mientras que la acción le otorga al control xib acceso al código obj-c.

+0

Podría decir que proporcionan 'puentes en direcciones opuestas'. –

35

Outlet y Action son formas (o conexión/intermediario) mediante las cuales un ViewController interactuará con su Vista. Aunque ambos pueden parecer similares durante los primeros días de conocimiento de iOS pero tienen un propósito diferente:

Salida: ViewController talks to View by using Outlet. Cualquier objeto (UILabel, UIButton, UIImage, UIView, etc.) en View puede tener una conexión de salida a ViewController. Outlet se usa como @property en ViewController, lo que significa que:
- puede establecer algo (como Actualizar texto de UILabel, Establecer imagen de fondo de un UIView, etc.) de un objeto utilizando la salida.
- se puede obtener algo de un objeto (como valor actual de UIStepper, tamaño de fuente actual de un NSAttributedString etc.)

Acción: View pass on messages about view to ViewController by using Action (o, en términos técnicos ViewController fijado como Target para cualquier Action en Vista) La acción es Method en ViewController (a diferencia de Outlet que es @property en ViewController). Cada vez que algo (cualquier Event) le sucede a un objeto (como el botón UI se toca), Acción transfiere el mensaje a ViewController. La acción (o método de acción) puede hacer algo después de recibir el mensaje.
Nota: La acción solo se puede establecer mediante el objeto secundario de UIControl; significa que no se puede establecer Acción para UILabel, etc. UIView

Donde \ Cuándo utilizar Outlet o Acción:
Durante los días iniciales de iOS conocido su perfectamente normal a confundirse entre la acción y la salida y sus usos. Hay pocas cosas pequeñas (como obtener texto/título de un botón) que se pueden hacer tanto por Outlet como por Acción, pero de lo contrario son muy diferentes. Tenga en cuenta los puntos anteriores al usar uno u otro.

+1

, entonces, ¿está diciendo que un Outlet es solo una propiedad que se comparte entre el controlador View y View, y una Acción envía mensajes de View al controlador View? – rbp

+1

La propiedad es solo una fachada para 2 métodos de acceso (métodos getter y setter) y outlet también establece y obtiene valor desde/hacia View, por lo que no estaría mal decir que outlet es una propiedad. Nota: IBOutlet es algo que Xcode pone en Editor para recordar a Xcode que this no es solo una propiedad @ aleatoria, es una salida (es decir, una conexión a la Vista) .El compilador lo ignora. –

7

La salida se utiliza cuando desea cambiar algunas propiedades de control, es decir, el color del texto o el tamaño del texto de una etiqueta.

Mientras que Acción se usa cuando desea detectar un disparador, es decir, cuando se presiona el botón.

1

Outlet & Action visualisation

Conexiones de salida y de acción son formas directas de que un UIViewController puede comunicarse con su UView. Por ejemplo, cuando un controlador de vista necesita establecer el texto de un UILabel, lo haría a través de la conexión de salida. Cuando se toca el objeto UIButton de una Vista, pasa el mensaje al Controlador de Vista utilizando la conexión de acción. Esto significa que la salida creada en View Controller se declara como @property y se crea una acción al declarar un método.

Una conexión de toma se crea cuando necesita enviar un mensaje desde su código a un objeto de interfaz de usuario en el guión gráfico de Xcode. El objeto puede ser un control, como un botón, un deslizador y un interruptor, o puede ser cualquier otro objeto definido en su guión gráfico, como una etiqueta y una barra de progreso. Por ejemplo, cuando su código determina que una etiqueta debe mostrar algunos textos, el código envía un mensaje a través de la salida indicando a la etiqueta que muestre el nuevo texto.

Una conexión de acción se crea cuando necesita enviar un mensaje de un control en el guión gráfico a su código. Un control es un objeto de interfaz de usuario que causa acciones o resultados visibles cuando un usuario manipula el objeto. Por ejemplo, cuando un usuario toca un botón, el botón envía un mensaje de acción a su código indicándole que ejecute el método apropiado. Otros ejemplos de controles que se pueden usar para crear conexiones de acción son campos de texto, controles deslizantes e interruptores.

Referencias: 1. https://medium.com/@GanChau/outlet-vs-action-connections-in-xcode-b5331fb233a1

Cuestiones relacionadas