iOS Delegates Tutorial

saat lopullisen tuotoksen:

delegaatti demo

mikä on delegaatti?

delegaatti on yksinkertaisesti vain viestintäväline iOS-sovellusten objektien välillä. Delegaation voi ajatella olevan yksinkertainen tapa yhdistää objekteja ja kommunikoida keskenään. Toisin sanoen voimme sanoa, että delegoida sallii yhden objektin lähettää viestin toiselle objektille, kun jokin tapahtuma tapahtuu. Lets ymmärtää tämän todellisen elämän esimerkki. Oletetaan, että on mitään toimistoa, jossa on 5 laskuria. Astut toimistoon ja menet tiskille 1 ja lähetät joitakin tietoja kyseiselle tiskille.

nyt tietojesi täytyy kulkea jonkin prosessin läpi, jonka laskuri 3 tietää, mutta laskuri 1 ei. joten laskuri 1 käskee sinua odottamaan jonkin aikaa ja siirtämään tietosi laskurille 3, jotta saat prosessin valmiiksi. Tässä tapauksessa laskuri 3 on tapahtumiasi käsittelevä delegaatti, johon viitataan laskurilla 1. Kun counter 3 on käsitellyt tietosi, se lähettää takaisin viestin counter 1 ilmoittaa, että prosessi on tehty ja voit jatkaa nyt.

esimerkki:

olet saattanut työskennellä Uialertviewsin kanssa.

esim.:

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

uialertview ’ n initializer-menetelmässä on parametri nimeltä delegaatti. Tämän parametrin asettaminen itselle, mikä tarkoittaa, että nykyinen objekti on vastuussa kaikkien tämän uialertview-luokan ilmentymän laukaisemien tapahtumien käsittelystä.

jos et halua käsitellä tapahtumia, voit asettaa tämän parametrin nollaan kuten alla on esitetty:

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

jos sinulla on useita painikkeita hälytyksessä ja haluat tietää, mitä painiketta naputetaan, voit toteuttaa alla olevan uialertviewdelegate-protokollassa määritellyn menetelmän.

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

tämä oli esimerkki ennalta määritellystä delegaatista. Mutta entä jos haluamme luoda oman valtuutetun? Opetellaan siis luomaan oma delegaatti:

Miten luodaan käyttäjän määrittelemä delegaatti?

Lets learn how to create user-defined delegate by creating a simple example step-by-step. Luomme esimerkin saadaksemme käyttäjältä etu-ja sukunimen ja näyttääksemme koko nimen. Delegaatin käsitteen ymmärtämiseksi saamme sukunimen eri Viewcontrollerilta, jossa asetamme delegaatin siirtämään sukunimen ensimmäiselle Viewcontrollerille.

Vaihe 1 Luo projekti & Design UI

luo ensin Uusi Xcode-projekti nimeltään DelegateDemo ja tallenna se. Se sisältää yhden Viewcontrollerin.

avaa nyt Pää_iphone.kuvakäsikirjoituksen tiedosto ja muokata sitä kuten alla kuvassa:

delegatedemo

Vaihe 2 Luo uusi Luokka

Luo uusi luokka nimeltä LastNameViewController, joka on UIViewController-luokan alaluokka ja antaa tämän luokan toiselle Viewcontrollerille.

Vaihe 3 Segue avoimelle uudelle näkymälle

luo nyt segue ensimmäisen näkymän painikkeesta toiseen Näkymäkontrolleriin.

Vaihe 4 Luo protokolla sisään .h-tiedosto

nyt on aika luoda oma delegaatti. Mene Lastnameviewcontrolleriin.H tiedosto ja muokata sitä alla:

#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

täällä Oman delegaatin luomiseksi on ensin luotava protokolla ja ilmoitettava tarvittavat menetelmät ilman sen toteuttamista. Toiseksi sinun täytyy luoda delegaatti @ominaisuus. Myös IBOutlet sukunimi tekstikenttä txtlastname ja luo IBAction btnDoneTapped() on Valmis painiketta toisen ViewController.

Step 5 Call Protocol methods

now go to LastNameViewController.M tiedosto ja muokata btnDoneTapped () menetelmä alla:

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

tässä asetamme sukunimen arvon valtuutetulle, jonka olemme luoneet edellisessä vaiheessa. Seuraa nyt seuraavaa vaihetta saadaksesi tämän arvon first view controllerissa

eli Viewcontrollerissa.M tiedosto

Vaihe 6 Aseta luodun protokollan delegaatti

saadaksesi arvon Lastnameviewcontrollerilta.näytettävä M-tiedosto.M-tiedosto, ensinnäkin meidän täytyy asettaa valtuutettu itselleen ViewController.M-tiedosto. Asettaa deleagte itselleen, meidän on lisättävä alla menetelmä ViewController.M-tiedosto:

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

otamme tämän menetelmän käyttöön asettaaksemme delegaatin itselleen, koska lataamme Lastnameviewcontrollerin seguen kautta. Mutta tätä varten sinun täytyy muokata Näkymäohjainta.H-tiedosto kuten alla.

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

Vaihe 7 Ota käyttöön Delegointimenetelmä

sukunimen arvon saamiseksi ota käyttöön delegointimenetelmä Viewcontrollerissa.M-tiedosto kuten alla:

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

jos sinulla on jokin kysely liittyvät iOS valtuutetut kommentoida niitä alla.

toivon, että löysit tämän blogin hyödylliseksi työskennellessäsi iOS-Delegaateilla. Kerro minulle, jos sinulla on kysymyksiä tai huolenaiheita koskien iOS, laita kommentti täällä ja saamme takaisin sinulle ASAP. Onko sinulla Idea iPhone App Development? Mitä vielä odotat? Ota yhteyttä nyt ja katso Idea livenä pian. Yrityksemme on nimetty yhdeksi parhaista iPhone App Development Company Intiassa.

luotu: 06. kesäkuuta 2014

olen iOS Developer. Tykkään opetella uusia teknologioita. Uskon, että kuka tahansa hölmö osaa kirjoittaa koodia, jota tietokone voi ymmärtää, mutta hyvät ohjelmoijat kirjoittavat koodia, jota ihmiset voivat ymmärtää.

PREVIOUS POST
Unity-Fire bullet with trail effect

NEXT POST
iOS Image Picker Controller

Vastaa

Sähköpostiosoitettasi ei julkaista.