Tutoriel des délégués iOS

Vous obtiendrez la sortie finale:

 démo de délégué

Qu’est-ce que le délégué?

Delegate est simplement un moyen de communication entre les objets des applications iOS. Vous pouvez penser la délégation comme un moyen simple de connecter des objets et de communiquer entre eux. En d’autres termes, nous pouvons dire que delegate permet à un objet d’envoyer un message à un autre objet lorsqu’un événement se produit. Permet de comprendre cela par un exemple réel. Supposons qu’il y ait un bureau avec 5 compteurs. Vous entrez dans le bureau et allez au comptoir 1 et soumettez quelques détails sur ce comptoir.

Maintenant, vos coordonnées doivent passer par un processus que le compteur 3 connaît mais que le compteur 1 ne connaît pas. Donc, le compteur 1 vous dira d’attendre un certain temps et de transmettre vos coordonnées au compteur 3 pour terminer le processus. Dans ce cas, le compteur 3 est le délégué qui gère vos événements, qui est référé par le compteur 1. Une fois que le compteur 3 a terminé le traitement de vos données, il renvoie le message au compteur 1 pour vous informer que le processus est terminé et que vous pouvez continuer maintenant.

Exemple:

Vous avez peut-être travaillé avec UIAlertViews.

Par ex.:

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

La méthode d’initialisation d’UIAlertView a un paramètre nommé delegate. Définir ce paramètre sur self, ce qui signifie que l’objet actuel est responsable de la gestion de tous les événements déclenchés par cette instance de la classe UIAlertView.

Si vous ne souhaitez pas gérer les événements, vous pouvez simplement définir ce paramètre sur nil comme indiqué ci-dessous:

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

Si vous avez plusieurs boutons en alerte et que vous souhaitez savoir quel bouton est appuyé, vous pouvez implémenter la méthode ci-dessous définie dans le protocole UIAlertViewDelegate.

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

C’était un exemple de délégué prédéfini. Mais que se passe-t-il si nous voulons créer notre propre délégué? Apprenons donc à créer votre propre délégué:

Comment créer un délégué défini par l’utilisateur?

Permet d’apprendre à créer un délégué défini par l’utilisateur en créant un exemple simple étape par étape. Nous allons créer un exemple pour obtenir le prénom et le nom de l’utilisateur et afficher le nom complet. Pour comprendre le concept de délégué, nous obtiendrons le nom de famille de différents ViewController où nous définirons le délégué pour transmettre le nom de famille au premier ViewController.

Étape 1 Créer un projet & Design UI

Tout d’abord, créez un nouveau projet Xcode nommé DelegateDemo et enregistrez-le. Il contiendra un ViewController.

Ouvrez maintenant l’iPhone principal.fichier storyboard et modifiez-le comme indiqué dans la figure ci-dessous:

delegatedemo

Étape 2 Créez une nouvelle classe

Créez une nouvelle classe nommée LastNameViewController qui sera la sous-classe de la classe UIViewController et affectez cette classe au deuxième ViewController.

Étape 3 Séquence pour Ouvrir une nouvelle vue

Créez maintenant une séquence à partir du bouton du premier ViewController vers le deuxième ViewController.

Étape 4 Créer un protocole dans.fichier h

Il est maintenant temps de créer votre propre délégué. Accédez au LastNameViewController.fichier h et modifiez-le comme ci-dessous:

#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

Ici, pour créer votre propre délégué, vous devez tout d’abord créer un protocole et déclarer les méthodes nécessaires sans son implémentation. Deuxièmement, vous devez créer une propriété @delegate. IBOutlet également le champ de texte du nom de famille en tant que txtLastName et crée IBAction btnDoneTapped() sur le bouton terminé dans le deuxième ViewController.

Étape 5 Méthodes de protocole d’appel

Allez maintenant dans LastNameViewController.m fichier et modifier la méthode btnDoneTapped() comme ci-dessous:

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

Ici, nous définissons la valeur du nom de famille sur le délégué que nous avons créé à l’étape précédente. Suivez maintenant l’étape suivante pour obtenir cette valeur dans first view controller

, c’est-à-dire ViewController.m file

Étape 6 Définissez le délégué du protocole créé

Pour obtenir la valeur de LastNameViewController.m fichier à ViewController.m fichier, tout d’abord, nous devons définir le délégué sur lui-même dans ViewController.fichier m. Pour définir le deleagte sur lui-même, nous devons ajouter la méthode ci-dessous dans ViewController.fichier m:

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

Nous implémentons cette méthode pour définir le délégué sur lui-même car nous chargeons le LastNameViewController via segue. Mais pour cela, vous devez modifier le ViewController.fichier h comme indiqué ci-dessous.

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

Étape 7 Implémenter la méthode déléguée

Pour obtenir la valeur du nom de famille, implémentez la méthode déléguée dans ViewController.fichier m comme ci-dessous:

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

Si vous avez une requête liée aux délégués iOS dans commentez-les ci-dessous.

J’espère que vous avez trouvé ce blog utile en travaillant sur les délégués iOS. Faites-moi savoir si vous avez des questions ou des préoccupations concernant iOS, veuillez mettre un commentaire ici et nous vous répondrons dès que possible. Vous avez une idée du développement d’applications iPhone? Qu’attendez-vous encore? Contactez-nous maintenant et voyez l’idée en direct bientôt. Notre société a été nommée comme l’une des meilleures sociétés de développement d’applications iPhone en Inde.

Créé le : 06 juin 2014

Je suis développeur iOS. J’aime apprendre les nouvelles technologies. Je crois que tout imbécile peut écrire du code qu’un ordinateur peut comprendre, mais que les bons programmeurs écrivent du code que les humains peuvent comprendre.

ARTICLE PRÉCÉDENT
Unity – Balle de feu avec effet de traînée

ARTICLE SUIVANT
Contrôleur de sélecteur d’image iOS

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.