iOS gedelegeerden Tutorial

u krijgt de uiteindelijke uitvoer:

demo delegeren

Wat is delegeren?

Delegate is gewoon een communicatiemiddel tussen objecten van iOS-toepassingen. Je kunt delegeren zien als een eenvoudige manier om objecten te verbinden en met elkaar te communiceren. Met andere woorden, we kunnen zeggen dat delegate een object toestaat om bericht te sturen naar een ander object wanneer een gebeurtenis plaatsvindt. Laten we dit begrijpen aan de hand van een voorbeeld uit het echte leven. Stel dat er een kantoor is met 5 tellers. Je gaat het kantoor binnen en gaat naar teller 1 en legt wat details op die teller.

nu moeten uw gegevens door een proces gaan dat counter 3 kent, maar counter 1 niet. dus counter 1 zal u vertellen enige tijd te wachten en uw gegevens door te geven aan counter 3 om het proces compleet te krijgen. In dit geval is counter 3 de gedelegeerde die uw evenementen afhandelt, die wordt doorverwezen door counter 1. Nadat counter 3 de verwerking van uw gegevens heeft voltooid, stuurt het het bericht terug naar counter 1 met de mededeling dat het proces is voltooid en u kunt nu verder gaan.

voorbeeld:

u hebt mogelijk met UIAlertViews gewerkt.

bijv.:

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

de initializer methode van UIAlertView heeft een parameter genaamd delegate. Het instellen van deze parameter op self, wat betekent dat het huidige object verantwoordelijk is voor het afhandelen van alle gebeurtenissen die door deze instantie van UIAlertView class worden afgevuurd.

Als u de gebeurtenissen niet wilt afhandelen, kunt u deze parameter eenvoudig instellen op nul, zoals hieronder getoond:

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

Als u meerdere knoppen op alert en u wilt weten welke knop wordt getikt, dan kunt u de onderstaande methode gedefinieerd in UIAlertViewDelegate protocol implementeren.

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

dit was een voorbeeld van vooraf gedefinieerde gedelegeerde. Maar wat als we onze eigen afgevaardigde willen creëren? Dus laten we leren hoe je je eigen gedelegeerde maakt:

Hoe maak je een door de gebruiker gedefinieerde gedelegeerde?

leer hoe u door de gebruiker gedefinieerde gedelegeerde maakt door stap voor stap een eenvoudig voorbeeld te maken. We zullen een voorbeeld maken om de voor-en achternaam van de gebruiker te krijgen en de volledige naam weer te geven. Om het concept van delegate te begrijpen, krijgen we de achternaam van verschillende ViewController waar we de delegate zullen Instellen om de achternaam door te geven aan de eerste ViewController.

Stap 1 Maak Project & ontwerp UI

maak eerst een nieuw Xcode-project met de naam DelegateDemo en sla het op. Het zal één ViewController bevatten.

open nu de Main_iPhone.storyboard-bestand en wijzigen zoals weergegeven in onderstaande figuur:

delegatedemo

Stap 2 Maak een nieuwe klasse

Maak een nieuwe klasse aan met de naam LastNameViewController die de subklasse van UIViewController klasse zal zijn en wijs deze klasse toe aan de tweede ViewController.

Stap 3 Segue voor Open nieuwe weergave

Maak nu segue van de knop in eerste ViewController naar de tweede ViewController.

Stap 4 Maak Protocol in .H bestand

nu is het tijd om uw eigen gedelegeerde te maken. Ga naar de laatste Nameviewcontroller.H bestand en wijzigen zoals hieronder:

#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

hier, om uw eigen gedelegeerde te maken, moet u eerst een protocol aanmaken en de nodige methoden verklaren zonder de implementatie ervan. Ten tweede moet je een delegate @property maken. Ook IBOutlet de achternaam tekst veld als txtLastName en maak IBAction btnDoneTapped () op gedaan knop in second ViewController.

Stap 5 Aanroepprotocol methoden

ga nu naar LastNameViewController.m bestand en wijzigen btndonetapped () methode zoals hieronder:

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

hier stellen we de waarde van de achternaam in op de gedelegeerde die we in de vorige stap hebben gemaakt. Volg nu de volgende stap om deze waarde te krijgen in de eerste weergave controller

dwz ViewController.m bestand

Stap 6 Stel gedelegeerde van aangemaakt Protocol

in om de waarde van LastNameViewController te krijgen.m bestand naar ViewController.m file, allereerst moeten we de gedelegeerde op zichzelf in ViewController.m file. Om de deleagte op zichzelf in te stellen, moeten we de onderstaande methode in ViewController toevoegen.m bestand:

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

We implementeren deze methode om de gedelegeerde op zichzelf te zetten omdat we de LastNameViewController laden via segue. Maar hiervoor moet je de ViewController aanpassen.H bestand zoals hieronder getoond.

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

Stap 7 Delegate method implementeren

om de waarde van de achternaam te krijgen, implementeer je de delegate method in ViewController.m bestand zoals hieronder:

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

Als u een query met betrekking tot iOS gedelegeerden in commentaar hieronder.

ik hoop dat u deze blog nuttig vond tijdens het werken aan iOS gedelegeerden. Laat het me weten als u vragen of opmerkingen met betrekking tot iOS, Gelieve een reactie hier en we zullen zo snel mogelijk terug naar u. Heb je een idee van de ontwikkeling van de iPhone App? Waar wacht je nog op? Neem nu contact met ons op en zie het idee binnenkort live. Ons bedrijf is genoemd als een van de beste iPhone App ontwikkeling bedrijf in India.

gemaakt op: 06 juni 2014

ik ben iOS ontwikkelaar. Ik leer graag nieuwe technologieën. Ik geloof dat elke dwaas code kan schrijven die een computer kan begrijpen, maar goede programmeurs schrijven code die mensen kunnen begrijpen.

PREVIOUS POST
Unity-Fire bullet met trail effect

NEXT POST
iOS Image Picker Controller

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.