Tutorial de Delegados de iOS

obtendrá la Salida Final:

delegado demo

¿Qué es delegar?

Delegate es simplemente un medio de comunicación entre objetos de aplicaciones iOS. Puede pensar en la delegación como una forma sencilla de conectar objetos y comunicarse entre sí. En otras palabras, podemos decir que delegate permite que un objeto envíe un mensaje a otro objeto cuando ocurre cualquier evento. Entendamos esto con un ejemplo de la vida real. Supongamos que hay una oficina con 5 mostradores. Entras en la oficina y vas al mostrador 1 y envías algunos detalles en ese mostrador.

Ahora sus datos deben pasar por algún proceso que el contador 3 conozca pero el contador 1 no. Por lo tanto, el contador 1 le dirá que espere un tiempo y pase sus datos al contador 3 para completar el proceso. En este caso, el contador 3 es el delegado que maneja sus eventos, al que se refiere el contador 1. Después de que el contador 3 complete el procesamiento de sus datos, envía el mensaje al contador 1 informando que el proceso ha terminado y que puede continuar ahora.

Ejemplo:

Es posible que haya trabajado con UIAlertViews.

Por ejemplo:

UIAlertView *alert = initWithTitle:@"Title" message:@"This is an alert view" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

El método inicializador de UIAlertView tiene un parámetro llamado delegado. Establecer este parámetro en self, lo que significa que el objeto actual es responsable de manejar todos los eventos disparados por esta instancia de la clase UIAlertView.

Si no desea manejar los eventos, simplemente puede establecer este parámetro en cero, como se muestra a continuación:

UIAlertView *alert = initWithTitle:@"Title" message:@"This is an alert view" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

Si tiene varios botones en alerta y desea saber qué botón está pulsado, puede implementar el siguiente método definido en el protocolo UIAlertViewDelegate.

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ NSLog(@"You have tapped button # %@",);}

Este fue un ejemplo de delegado predefinido. Pero, ¿y si queremos crear nuestro propio delegado? Así que vamos a aprender cómo crear su propio delegado:

¿Cómo crear un delegado definido por el usuario?

Aprendamos a crear un delegado definido por el usuario creando un ejemplo sencillo paso a paso. Crearemos un ejemplo para obtener el nombre y apellido del usuario y mostrar el nombre completo. Para entender el concepto de delegado, obtendremos el apellido de un controlador ViewController diferente, donde configuraremos el delegado para que pase el apellido al primer controlador ViewController.

Paso 1 Crear proyecto & Diseñar interfaz de usuario

En primer lugar, cree un nuevo proyecto Xcode llamado DelegateDemo y guárdelo. Contendrá un controlador de vista.

Ahora abra Main_iPhone.archivo de guion gráfico y modifíquelo como se muestra en la siguiente figura:

delegatedemo

Paso 2 Crear nueva clase

Crear una nueva clase llamada LastNameViewController que será la subclase de la clase UIViewController y asignar esta clase al segundo ViewController.

Paso 3 Segue para Abrir nueva vista

Ahora cree segue desde el botón del primer controlador de vista al segundo controlador de vista.

Paso 4 Crear protocolo en .archivo h

Ahora es el momento de crear tu propio delegado. Vaya al controlador LastNameViewController.archivo h y modifíquelo como se muestra a continuación:

#import <UIKit/UIKit.h> @protocol LastNameViewControllerDelegate-(void)setLastName:(NSString *)lastName;@end @interface LastNameViewController : UIViewController @property (nonatomic,retain) id delegate;@property (weak, nonatomic) IBOutlet UITextField *txtLastName;- (IBAction)btnDoneTapped:(id)sender; @end

Aquí, para crear su propio delegado, primero debe crear un protocolo y declarar los métodos necesarios sin su implementación. En segundo lugar, debe crear una propiedad delegate@. También IBOutlet el campo de texto apellido como txtLastName y cree IBAction btnDoneTapped () en el botón hecho en el segundo controlador de vista.

Paso 5 Métodos de protocolo de llamada

Ahora vaya a LastNameViewController.archivo m y modificar el método btnDoneTapped() como se muestra a continuación:

- (IBAction)btnDoneTapped:(id)sender{ ; ; ;}

Aquí, establecemos el valor de apellido al delegado que hemos creado en el paso anterior. Ahora siga el siguiente paso para obtener este valor en first view controller

, es decir, ViewController.archivo m

Paso 6 Establezca el Delegado del Protocolo creado

Para obtener el valor de LastNameViewController.archivo m a ViewController.archivo m, en primer lugar tenemos que configurar el delegado en sí mismo en ViewController.archivo m. Para establecer el deleagte en sí mismo, tenemos que agregar el siguiente método en ViewController.archivo m:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ LastNameViewController *lastNameViewController = ; lastNameViewController.delegate = self;}

Implementamos este método para establecer el delegado en sí mismo porque estamos cargando el controlador LastNameViewController a través de segue. Pero para esto tienes que modificar el controlador ViewController.archivo h como se muestra a continuación.

#import "LastNameViewController.h" @interface ViewController : UIViewController

Paso 7 Implementar método delegado

Para obtener el valor de apellido, implemente el método delegado en ViewController.archivo m como se muestra a continuación:

-(void)setLastName:(NSString *)lastName{ NSString *fullName = ; txtFullName.text = fullName;}

Si tiene alguna consulta relacionada con Delegados de iOS, coméntelos a continuación.

Espero que haya encontrado útil este blog mientras trabaja con Delegados de iOS. Hágame saber si tiene alguna pregunta o inquietud con respecto a iOS, escriba un comentario aquí y nos pondremos en contacto con usted lo antes posible. ¿Tienes una Idea del Desarrollo de Aplicaciones para iPhone? ¿Qué estás esperando? Contáctenos ahora y vea la Idea en vivo pronto. Nuestra empresa ha sido nombrada como una de las mejores Empresas de Desarrollo de Aplicaciones para iPhone en la India.

Creado el : 06 de junio 2014

soy Desarrollador iOS. Me gusta aprender nuevas tecnologías. Creo que cualquier tonto puede escribir código que una computadora pueda entender, pero los buenos programadores escriben código que los humanos pueden entender.

POST ANTERIOR
Unidad de Bomberos de la bala con el sendero efecto

PRÓXIMO POST
iOS Imagen Selector de Controlador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.