• Saltar a la navegación principal
  • Saltar al contenido principal

CARLOSZR.COM

Mi blog personal, CarlosZR

  • Blog
  • Contacto
  • Curso de SwiftUI por CarlosZR

programar-apps-ios / 15/09/2021

Ejemplo de Patrón del Delegado en Swift con Xcode

Ejemplo Patrón del delegado en Swift

En este vídeo que hice para el Canal de Youtube Init puedes ver el ejemplo del patrón del delegado en Swift. También te animo a que me sigas en Youtube en mi Canal iOS Developer by CarlosZR.

1. El Patrón del Delegado es uno de los más usados en iOS. Debemos de saberlo perfectamente

Vamos a ver ejemplos de patrón del delegado. Un patrón de arquitectura es un conjunto de prácticas que se utilizan para resolver un problema, generalmente recurrente. Se establecen ciertas convenciones para solucionarlo. Tal vez el patrón de arquitectura más conocido es el patrón MVC (Modelo Vista Controlador).

La vista se comunica con el controlador mediante dos mecanismos: Target Action y el Patrón del delegado.

En este artículo vamos a ver un sencillo pero instructivo ejemplo del patrón del delegado.

También es conveniente recordar que hay dos tipos de protocolos: delegate y datasource.

Delegate: suele contener métodos que se refieren a cómo funciona ese objeto, sus características, cómo se tiene que ver, cómo se tiene que comportar,…

Datasource: va sobre los datos que tiene que cargar

2. Ejemplo con protocolo estándar

Hay dos protagonistas que debemos tener claros: la clase y el protocolo. La clase se va a ajustar al protocolo que le indiquemos. En este vaso va a ser un protocolo ya existente. Al ajustar la clase a un protocolo, es la clase quien va a ayudar al objeto, del cual es el delegado.

La forma en la que esto se realiza con Swift es mu sencilla. Simplemente se pone una «,» después del tipo de objeto que es la clase. Lo puedes ver en la siguiente imagen.

clase delegada
Clase delegada con UITextFieldDelegate

Ahora podemos implementar métodos dentro de esta clase que antes no tenía para «ayudar» a nuestro TextField.

En la siguiente imagen podemos ver cómo implementamos un método para esconder el teclado al pulsar la tecla «Intro». Antes de implementar el patrón del delegado no disponíamos de dicho método.

Como vemos en la siguiente imagen, hay que decirle al ViewController que es el delegado de este protocolo.

self.textfield.delegate = self
Patrón del delegado para un TextField
Patrón del delegado para un TextField

En la práctica ocurre lo siguiente, existe un campo de texto sobre el que pulsamos y se abre el teclado para que podamos escribir. Hasta aquí todo normal, pero si pulsamos en otro sitio el teclado se sigue mostrando. Con la implementación del método textFieldShouldReturn, al pulsar intro el teclado se cierra.

3. Ejemplo de Patrón de Delegado con protocolo custom

En este ejemplo de patrón del delegado vamos a ver cómo crear e implementar nuestro propio protocolo. (Próximamente).

4. ¿Quieres aprender a crear apps para iOS?

Si te quieres ganar la vida como programador no dudes en contactarme.

Publicado en: programar-apps-ios

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Carlos ZR

  • Sígueme en Twitter
  • Política de Cookies
  • Política de Privacidad
  • Aviso Legal

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los ajustes.

CARLOSZR.COM
Powered by  GDPR Cookie Compliance
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.