cíl
hlavním cílem tohoto blogu je vysvětlit, co je delegát a jak je užitečné v aplikacích pro iOS.
získáte konečný výstup:
co je delegát?
delegát je prostě jen prostředkem komunikace mezi objekty aplikací pro iOS. Delegaci můžete považovat za jednoduchý způsob propojení objektů a vzájemné komunikace. Jinými slovy můžeme říci, že delegát umožňuje jednomu objektu odeslat zprávu jinému objektu, když dojde k jakékoli události. Pojďme to pochopit příkladem skutečného života. Předpokládejme, že existuje nějaká kancelář s 5 čítači. Vstoupíte do kanceláře a jdete na pult 1 a odešlete některé podrobnosti o tomto pultu.
nyní vaše údaje musí projít nějakým procesem, který counter 3 ví, ale counter 1 ne. takže counter 1 vám řekne, abyste nějakou dobu počkali a předali své údaje do counter 3, abyste proces dokončili. V tomto případě counter 3 je delegát, který zpracovává vaše události, který je označován counter 1. Po counter 3 dokončí zpracování vašich dat, odešle zpět zprávu counter 1 informující, že proces je hotový a nyní můžete pokračovat dále.
příklad:
možná jste pracovali s UIAlertViews.
např:
UIAlertView *alert = initWithTitle:@"Title" message:@"This is an alert view" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
metoda inicializátoru uialertview má parametr s názvem delegát. Nastavení tohoto parametru na self, což znamená, že aktuální objekt je zodpovědný za zpracování všech událostí vypálených touto instancí třídy UIAlertView.
pokud nechcete zpracovávat události, můžete jednoduše nastavit tento parametr na nulu, jak je uvedeno níže:
UIAlertView *alert = initWithTitle:@"Title" message:@"This is an alert view" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
pokud máte v pohotovosti více tlačítek a chcete vědět, které tlačítko je poklepáno, můžete implementovat níže uvedenou metodu definovanou v protokolu uialertviewdelegate.
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ NSLog(@"You have tapped button # %@",);}
toto byl příklad předem definovaného delegáta. Ale co když chceme vytvořit vlastního delegáta? Takže pojďme se naučit, jak vytvořit svůj vlastní delegát:
jak vytvořit uživatelem definovaný delegát?
umožňuje naučit se, jak vytvořit uživatelem definovaný delegát vytvořením jednoduchého příkladu krok za krokem. Vytvoříme příklad, jak získat jméno a příjmení od uživatele a zobrazit celé jméno. Abychom porozuměli konceptu delegáta, dostaneme příjmení z různých ViewController, kde nastavíme delegáta, aby předal příjmení prvnímu Viewcontrolleru.
Krok 1 Vytvořit projekt & Design UI
nejprve vytvořte nový projekt Xcode s názvem DelegateDemo a uložte jej. Bude obsahovat jeden ViewController.
nyní otevřete Main_iPhone.storyboard soubor a upravit jej, jak je znázorněno na obrázku níže:
Krok 2 Vytvořte novou třídu
vytvořte novou třídu s názvem LastNameViewController, která bude podtřídou třídy UIViewController a přiřaďte tuto třídu druhému Viewcontrolleru.
Krok 3 Segue pro otevření nového zobrazení
nyní vytvořte segue z tlačítka v prvním Viewcontrolleru na druhý ViewController.
Krok 4 vytvořit protokol v .h soubor
nyní je čas vytvořit si vlastní delegáta. Přejděte na LastNameViewController.h soubor a upravit jej, jak je uvedeno níže:
#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
Chcete-li vytvořit svůj vlastní delegát, musíte nejprve vytvořit protokol a deklarovat potřebné metody bez jeho implementace. Za druhé musíte vytvořit delegát @property. Také IBOutlet příjmení textové pole jako txtLastName a vytvořit IBAction btnDoneTapped () na tlačítko Hotovo v druhém ViewController.
Krok 5 Metody volání protokolu
Nyní přejděte na LastNameViewController.m soubor a upravit metodu btnDoneTapped (), jak je uvedeno níže:
- (IBAction)btnDoneTapped:(id)sender{ ; ; ;}
zde nastavíme hodnotu příjmení na delegáta, kterého jsme vytvořili v předchozím kroku. Nyní postupujte podle dalšího kroku a získejte tuto hodnotu v ovladači prvního pohledu
tj.m soubor
Krok 6 Nastavte delegát vytvořeného protokolu
pro získání hodnoty z LastNameViewController.m soubor ViewController.m soubor, nejprve musíme nastavit delegáta na sebe v ViewController.soubor m. Chcete-li nastavit deleagte na sebe, musíme přidat níže uvedenou metodu v ViewController.soubor m:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ LastNameViewController *lastNameViewController = ; lastNameViewController.delegate = self;}
implementujeme tuto metodu pro nastavení delegáta na sebe, protože načítáme LastNameViewController přes segue. Ale pro to musíte upravit Pohledkontrolér.h soubor, jak je uvedeno níže.
#import "LastNameViewController.h" @interface ViewController : UIViewController
Krok 7 implementujte metodu delegáta
Chcete-li získat hodnotu příjmení, implementujte metodu delegáta v ViewController.soubor m, jak je uvedeno níže:
-(void)setLastName:(NSString *)lastName{ NSString *fullName = ; txtFullName.text = fullName;}
pokud máte jakýkoli dotaz týkající se delegátů iOS v komentáři níže.
doufám, že vám tento blog pomohl při práci na delegátech iOS. Dejte mi vědět, pokud máte nějaké dotazy nebo obavy týkající se iOS, vložte prosím komentář a my se vám ozveme co nejdříve. Máte představu o vývoji aplikací pro iPhone? Na co ještě čekáte? Kontaktujte nás a uvidíte nápad brzy naživo. Naše společnost byla jmenována jako jedna z nejlepších společností pro vývoj aplikací pro iPhone v Indii.
jsem vývojář iOS. Rád se učím nové technologie. Věřím, že každý blázen může psát kód, který počítač může pochopit, ale dobří programátoři psát kód, který lidé mohou pochopit.
Unity-Fire bullet with trail effect
iOS Image Picker Controller