obiectiv
obiectivul principal al acestei postări pe blog este de a explica ce este delegat și cum este util în aplicațiile iOS.
veți obține rezultatul Final:
ce este delegat?
delegatul este pur și simplu doar un mijloc de comunicare între obiectele aplicațiilor iOS. Puteți gândi delegarea ca o modalitate simplă de a conecta obiecte și de a comunica între ele. Cu alte cuvinte, putem spune că delegatul permite unui obiect să trimită mesaj către alt obiect atunci când are loc orice eveniment. Să înțelegem acest lucru printr-un exemplu din viața reală. Să presupunem că există un birou cu 5 contoare. Intrați în birou și mergeți la contorul 1 și trimiteți câteva detalii despre acel contor.
acum detaliile dvs. trebuie să treacă printr-un proces pe care counter 3 îl știe, dar counter 1 nu. deci counter 1 vă va spune să așteptați ceva timp și să treceți detaliile dvs. la counter 3 pentru a finaliza procesul. În acest caz, counter 3 este delegatul care se ocupă de evenimentele dvs., care este menționat de counter 1. După ce counter 3 finalizează procesarea datelor dvs., acesta trimite înapoi mesajul către counter 1 informând că procesul este finalizat și puteți continua acum.
exemplu:
este posibil să fi lucrat cu UIAlertViews.
de exemplu:
UIAlertView *alert = initWithTitle:@"Title" message:@"This is an alert view" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
metoda inițializator de UIAlertView are un parametru numit Delegat. Setarea acestui parametru la sine, ceea ce înseamnă că obiectul curent este responsabil pentru manipularea tuturor eveniment concediat de această instanță a clasei UIAlertView.
dacă nu doriți să gestionați evenimentele, puteți seta pur și simplu acest parametru la zero, așa cum se arată mai jos:
UIAlertView *alert = initWithTitle:@"Title" message:@"This is an alert view" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
dacă aveți mai multe butoane în alertă și doriți să știți ce buton este apăsat, atunci puteți implementa metoda de mai jos definită în protocolul UIAlertViewDelegate.
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ NSLog(@"You have tapped button # %@",);}
acesta a fost un exemplu de delegat predefinit. Dar dacă vrem să ne creăm propriul delegat? Deci, vă permite să învețe cum să creați propriul delegat:
cum de a crea delegat definite de utilizator?
vă permite să învețe cum să creeze delegat definite de utilizator prin crearea unui exemplu simplu pas-cu-pas. Vom crea un exemplu pentru a obține prenumele și prenumele de la utilizator și pentru a afișa numele complet. Pentru a înțelege conceptul de delegat, vom obține numele de familie din diferite ViewController unde vom seta delegatul să transmită numele de familie primului ViewController.
Pasul 1 Creare proiect & design UI
în primul rând a crea un nou proiect Xcode numit DelegateDemo și salvați-l. Acesta va conține un ViewController.
acum deschideți Main_iPhone.fișier storyboard și modificați-l așa cum se arată în figura de mai jos:
Pasul 2 Creați o nouă clasă
creați o nouă clasă numită LastNameViewController care va fi subclasa clasei UIViewController și atribuiți această clasă celui de-al doilea ViewController.
Pasul 3 Segue Pentru Open new view
acum creați segue din butonul din primul ViewController la al doilea ViewController.
Pasul 4 Creați protocolul în.h fișier
acum este timpul pentru a crea propriul delegat. Du-te la LastNameViewController.h fișier și modificați-l ca mai jos:
#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
aici, pentru a vă crea propriul delegat, în primul rând trebuie să creați un protocol și să declarați Metodele necesare fără implementarea acestuia. În al doilea rând, trebuie să creați un delegat @proprietate. De asemenea, IBOutlet câmpul de text nume ca txtLastName și de a crea IBAction btnDoneTapped() pe butonul done în al doilea ViewController.
Pasul 5 Apel metode de Protocol
acum du-te la lastnameviewcontroller.m fișier și modifica metoda btnDoneTapped() ca mai jos:
- (IBAction)btnDoneTapped:(id)sender{ ; ; ;}
aici, setăm valoarea numelui de familie la delegatul pe care l-am creat în pasul anterior. Acum urmați următorul pas pentru a obține această valoare în prima vizualizare controler
adică ViewController.fișier m
Pasul 6 Set delegat de Protocol creat
pentru a obține valoarea de la LastNameViewController.fișier m pentru ViewController.m fișier, în primul rând trebuie să setați delegatul la sine în ViewController.fișier M. Pentru a seta deleagte la sine, trebuie să adăugăm metoda de mai jos în ViewController.fișier m:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ LastNameViewController *lastNameViewController = ; lastNameViewController.delegate = self;}
implementăm această metodă pentru a seta delegatul la sine, deoarece încărcăm LastNameViewController prin segue. Dar pentru asta trebuie să modificați Vizualizareacontroller.h fișier așa cum se arată mai jos.
#import "LastNameViewController.h" @interface ViewController : UIViewController
Pasul 7 implementați metoda delegatului
pentru a obține valoarea numelui de familie, implementați metoda delegatului în ViewController.fișier m ca mai jos:
-(void)setLastName:(NSString *)lastName{ NSString *fullName = ; txtFullName.text = fullName;}
dacă aveți orice interogare legată de delegații iOS, comentați-i mai jos.
sper că ați găsit acest blog util în timp ce lucrați la delegații iOS. Anunțați-mă dacă aveți întrebări sau nelămuriri cu privire la iOS, vă rugăm să puneți un comentariu aici și vă vom contacta cât mai curând posibil. Ai o idee de dezvoltare iPhone App? Ce mai aștepți? Contactați-ne acum și vedeți ideea în curând. Compania noastră a fost numită una dintre cele mai bune companii de dezvoltare a aplicațiilor iPhone din India.
sunt Dezvoltator iOS. Îmi place să învăț noi tehnologii. Cred că orice prost poate scrie un cod pe care un computer îl poate înțelege, dar programatorii buni scriu un cod pe care oamenii îl pot înțelege.
iOS imagine Picker controler