iOS delegerede Tutorial

Du får endelig Output:

delegeret demo

Hvad er delegeret?

delegeret er simpelthen bare et middel til kommunikation mellem objekter af iOS-applikationer. Du kan tænke delegation som en enkel måde at forbinde objekter og kommunikere med hinanden. Med andre ord kan vi sige, at delegeret tillader et objekt at sende besked til et andet objekt, når en begivenhed opstår. Lad os forstå dette ved et eksempel i det virkelige liv. Antag, at der er noget kontor med 5 tællere. Du går ind på kontoret og går til tæller 1 og indsender nogle detaljer om den tæller.

nu skal dine detaljer gennemgå en proces, som tæller 3 ved, men tæller 1 ikke gør. så tæller 1 vil fortælle dig at vente et stykke tid og videregive dine detaljer til tæller 3 for at få processen færdig. I dette tilfælde tæller 3 er den delegerede, der håndterer dine begivenheder, som henvises af tæller 1. Når counter 3 er færdig med at behandle dine data, sender den beskeden tilbage til counter 1, der informerer om, at processen er færdig, og du kan gå videre nu.

eksempel:

du har muligvis arbejdet med Uialertvisninger.

E. g:

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

initialiseringsmetoden for Uialertvisning har en parameter, der hedder delegeret. Indstilling af denne parameter til selv, hvilket betyder, at det aktuelle objekt er ansvarlig for håndtering af alle begivenheder, der affyres af denne forekomst af Uialertvisningsklasse.

hvis du ikke ønsker at håndtere begivenhederne, kan du blot indstille denne parameter til nul som vist nedenfor:

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

hvis du har flere knapper på alarm, og du vil vide, hvilken knap der tappes, kan du implementere nedenstående metode defineret i Uialertviseelegate-protokollen.

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

dette var et eksempel på foruddefineret delegeret. Men hvad nu hvis vi ønsker at oprette vores egen delegeret? Så lad os lære at oprette din egen delegeret:

Sådan oprettes brugerdefineret delegeret?

lad os lære at oprette brugerdefineret delegeret ved at oprette et simpelt eksempel trin for trin. Vi opretter et eksempel for at få fornavn og efternavn fra brugeren og vise det fulde navn. For at forstå begrebet delegeret får vi efternavnet fra forskellige Visningskontroller, hvor vi indstiller delegaten til at videregive efternavnet til den første Visningskontroller.

Trin 1 Opret projekt &design UI

Opret først et nyt Kodeprojekt ved navn DelegateDemo og gem det. Det vil indeholde en Visningskontroller.

åbn nu Hoved_iphone.storyboard fil og ændre det som vist i nedenstående figur:

delegatedemo

Trin 2 Opret ny klasse

Opret en ny klasse med navnet Lastnameviecontroller, som vil være underklassen i Uivieccontroller-klassen, og tildel denne klasse til den anden Visningskontroller.

Trin 3 Segue for åben ny visning

Opret nu segue fra knappen i første Visningskontroller til den anden Visningskontroller.

Trin 4 Opret protokol i .H fil

nu er det tid til at oprette din egen delegeret. Gå til Lastnameviskontroller.H fil og ændre det som nedenfor:

#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

for at oprette din egen delegat skal du først og fremmest oprette en protokol og erklære de nødvendige metoder uden dens implementering. For det andet skal du oprette en delegeret @ejendom. IBOutlet også tekstfeltet efternavn Som efternavn og opret IBAction btnDoneTapped () på Udført knap i anden Visningskontroller.

Trin 5 Call Protocol methods

gå nu til Lastnameviecontroller.M fil og ændre btndonetapped() metode som nedenfor:

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

her indstiller vi værdien af efternavn til den delegerede, vi har oprettet i forrige trin. Følg nu det næste trin for at få denne værdi i første visningscontroller

dvs.Visningskontroller.M-fil

Trin 6 Indstil delegeret for Oprettet protokol

for at få værdien fra Lastnameviecontroller.M fil for at Secontroller.M fil, først og fremmest er vi nødt til at indstille delegeret til sig selv i Visningskontroller.M fil. For at indstille deleagte til sig selv, skal vi tilføje nedenstående metode i Visningskontroller.m file:

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

vi implementerer denne metode til at indstille delegaten til sig selv, fordi vi indlæser Lastnameviecontroller gennem segue. Men for dette skal du ændre Visningencontroller.H fil som vist nedenfor.

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

Trin 7 Implementer delegeret metode

for at få værdien af efternavn, implementere delegeret metode i Visningcontroller.M fil som nedenfor:

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

hvis du har nogen forespørgsel relateret til iOS-delegerede i kommentar dem nedenfor.

jeg håber du fandt denne blog nyttigt, mens du arbejder på iOS delegerede. Lad mig vide, hvis du har spørgsmål eller bekymringer vedrørende iOS, bedes du lægge en kommentar her, så vender vi tilbage til dig ASAP. Har du en ide om iPhone App Udvikling? Hvad venter du stadig på? Kontakt os nu og se ideen live snart. Vores firma er blevet kåret som en af de bedste iPhone App udvikling selskab i Indien.

oprettet den: 06 Juni 2014

jeg er iOS Udvikler. Jeg kan godt lide at lære nye teknologier. Jeg tror, at enhver fjols kan skrive kode, som en computer kan forstå, men gode programmører skriver kode, som mennesker kan forstå.

forrige indlæg
Unity-Fire bullet med trail effekt

næste indlæg
iOS Image Picker Controller

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.