iOS Delegati Tutorial

Si otterrà uscita finale:

delegate demo

Che cos’è delegate?

Delegato è semplicemente solo un mezzo di comunicazione tra oggetti di applicazioni iOS. Puoi pensare alla delega come un modo semplice per connettere oggetti e comunicare tra loro. In altre parole possiamo dire che delegate consente a un oggetto di inviare un messaggio ad un altro oggetto quando si verifica un evento. Consente di capire questo da un esempio di vita reale. Supponiamo che ci sia un ufficio con 5 contatori. Si entra in ufficio e andare al contatore 1 e presentare alcuni dettagli su quel contatore.

Ora i tuoi dati devono passare attraverso un processo che counter 3 conosce ma counter 1 no. Quindi counter 1 ti dirà di aspettare un po ‘ di tempo e passare i tuoi dati a counter 3 per completare il processo. In questo caso il contatore 3 è il delegato che gestisce i tuoi eventi, a cui fa riferimento il contatore 1. Dopo contatore 3 completa l’elaborazione dei dati, invia di nuovo il messaggio al contatore 1 informando che il processo è fatto e si può procedere ulteriormente ora.

Esempio:

Potresti aver lavorato con UIAlertViews.

Ad esempio:

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

Il metodo di inizializzazione di UIAlertView ha un parametro denominato delegato. Impostazione di questo parametro su self, il che significa che l’oggetto corrente è responsabile della gestione di tutti gli eventi attivati da questa istanza della classe UIAlertView.

Se non si desidera gestire gli eventi, è sufficiente impostare questo parametro su nil come mostrato di seguito:

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

Se si dispone di più pulsanti in allerta e si desidera sapere quale pulsante è toccato, è possibile implementare il seguente metodo definito nel protocollo UIAlertViewDelegate.

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

Questo era un esempio di delegato predefinito. Ma cosa succede se vogliamo creare il nostro delegato? Quindi impariamo come creare il tuo delegato:

Come creare un delegato definito dall’utente?

Consente di imparare a creare delegato definito dall’utente creando un semplice esempio passo-passo. Creeremo un esempio per ottenere nome e cognome dall’utente e visualizzare il nome completo. Per comprendere il concetto di delegato, otterremo il cognome da ViewController diverso dove imposteremo il delegato per passare il cognome al primo ViewController.

Passo 1 Crea progetto &Design UI

Prima di tutto crea un nuovo progetto Xcode chiamato DelegateDemo e salvalo. Conterrà un ViewController.

Ora apri il Main_iPhone.storyboard file e modificarlo come mostrato nella figura seguente:

delegatedemo

Passo 2 Crea nuova classe

Crea una nuova classe denominata LastNameViewController che sarà la sottoclasse della classe UIViewController e assegna questa classe al secondo ViewController.

Passo 3 Segue per aprire una nuova vista

Ora crea segue dal pulsante nel primo ViewController al secondo ViewController.

Passo 4 Creare protocollo in .h file

Ora è il momento di creare il proprio delegato. Vai a LastNameViewController.h file e modificarlo come di seguito:

#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

Qui, per creare il proprio delegato, prima di tutto devi creare un protocollo e dichiarare i metodi necessari senza la sua implementazione. In secondo luogo è necessario creare un delegato @property. Anche IBOutlet il campo di testo del cognome come txtLastName e crea IBAction btnDoneTapped () sul pulsante done in second ViewController.

Passo 5 Metodi di protocollo di chiamata

Ora vai a LastNameViewController.m file e modificare btnDoneTapped () metodo come di seguito:

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

Qui, impostiamo il valore di cognome al delegato che abbiamo creato nel passaggio precedente. Ora segui il passaggio successivo per ottenere questo valore in first view controller

cioè ViewController.m file

Passo 6 Impostare il delegato del protocollo creato

Per ottenere il valore da LastNameViewController.m file per ViewController.m file, prima di tutto dobbiamo impostare il delegato su se stesso in ViewController.file M. Per impostare il deleagte su se stesso, dobbiamo aggiungere il seguente metodo in ViewController.m file:

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

Implementiamo questo metodo per impostare il delegato su se stesso perché stiamo caricando LastNameViewController tramite segue. Ma per questo devi modificare ViewController.h file come mostrato di seguito.

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

Passo 7 Implementare il metodo delegato

Per ottenere il valore del cognome, implementare il metodo delegato in ViewController.m file come di seguito:

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

Se hai qualche domanda relativa ai delegati iOS nel commentarli di seguito.

Spero che tu abbia trovato questo blog utile mentre lavori sui delegati iOS. Fatemi sapere se avete domande o dubbi riguardanti iOS, si prega di mettere un commento qui e vi risponderemo al più presto. Hai un’idea dello sviluppo di app per iPhone? Cosa stai ancora aspettando? Contattaci ora e vedere l’idea dal vivo presto. La nostra azienda è stata nominata come una delle migliori società di sviluppo di app per iPhone in India.

Creato il : 06 giugno 2014

Sono uno sviluppatore iOS. Mi piace imparare nuove tecnologie. Credo che qualsiasi pazzo possa scrivere codice che un computer può capire, ma i buoni programmatori scrivono codice che gli umani possono capire.

POST PRECEDENTE
Unity-Proiettile di fuoco con effetto trail

MESSAGGIO SUCCESSIVO
iOS Image Picker Controller

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.