Sådan tilføjes Metoder til en Modal View Controller i din iPad App

Hvis din iPad app har en Modal visning, skal du tilføje metoder til SettingsViewController.m (gennemførelse) fil. Disse metoder styre iPad app Modal visning og udføre alle bruger-input handlinger.

Det hjælper at vide, hvad hver sektion af skabelonen-forudsat kode gør, og det er især nyttigt, hvis du bruger # pragma mark udsagn til at markere hver sektion, så du hurtigt kan hoppe til det relevante afsnit, når det er nødvendigt. Følgende eksempel kode, som er en del af en app kaldet dybe tanker, indeholder disse udtalelser.

#import "SettingsViewController.h"
#import "DeepThoughtsViewController.h"
#import "Constants.h"
implementation SettingsViewController
synthesize delegeret, wordsOfWisdom, skyder;
#pragma mark -
#pragma mark View livscyklus
/ *
// Den udpegede startværdi. Tilsidesæt hvis du opretter controlleren programmatisk og ønsker at udføre tilpasning, der ikke er egnet til viewDidLoad.
- (Id) initWithNibName: (NSString *) nibNameOrNil bundle: (NSBundle *) nibBundleOrNil {
hvis ((selv- = [super initWithNibName: nibNameOrNil bundle: nibBundleOrNil])) {
// Brugerdefineret initialisering
}
returnere selv;
}
* /
/ *
// Gennemføre viewDidLoad at gøre yderligere opsætning efter indlæsning udsigten, typisk fra en spids.
- (Void) viewDidLoad {
[Super viewDidLoad];
}
* /
- (Void) viewDidLoad {
[Super viewDidLoad];
self.view.backgroundColor = [UIColor clearColor];
. slider.value = + kMaxSpeed ​​- ((DeepThoughtsViewController *) (self.parentViewController)) hastighed;
}
#pragma mark -
#pragma mark tekstfeltet
- (BOOL) textFieldShouldBeginEditing: (UITextField *) tekstfeltet {
[Tekstfeltet setReturnKeyType: UIReturnKeyNext];
tilbage JA;
}
- (BOOL) textFieldShouldReturn: (UITextField *) tekstfeltet {
[Tekstfeltet resignFirstResponder];
tilbage JA;
}
- (Void) textFieldDidEndEditing: (UITextField *) tekstfeltet {
wordsOfWisdom = textField.text;
}
#pragma mark -
#pragma mark Controls
- (IBAction) speedChanged: (ID) afsender {
[Delegeret changeSpeed: [(UISlider *) afsender værdi]];
}
- (IBAction) gjort {
hvis ([theTextField.text isEqualToString: @ ""]!) wordsOfWisdom = theTextField.text;
[Self.delegate settingsViewControllerDidFinish: self];
}
#pragma mark -
#pragma mark Orientering
- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {
// Tilsidesættes at tillade nogen orientering.
tilbage JA;
}
#pragma mark -
#pragma mark Memory management
- (Void) didReceiveMemoryWarning {
// Udgivelser visningen, hvis det ikke har en Superview.
[Super didReceiveMemoryWarning];

// Slip alle cachede data, billeder, etc, som ikke er i brug.
}
- (Void) viewDidUnload {
[Super viewDidUnload];
// Frigive noget tilbageholdt subviews af hovedvisningen.
// F.eks self.myOutlet = intet;
}
- (Void) dealloc {
[Super dealloc];
}
end

Okay, her er hvad den foregående kode gør:

  • Selvomproperty erklæring i header-filen fortæller compileren, at der er adgangsmetoder, du har brug for ensynthesize erklæring til en ejendom for at skabe disse metoder. Densynthesize erklæring fortæller compileren at skabe accessor metoder for dig - en for hverproperty erklæring.
  • Den viewDidLoad metode sætter baggrunden og hastighed for skyderen (som styrer hastigheden af ​​ord ruller hen over skærmen iPad).
  • Den UITextFieldDelegate protokol definerer beskeder sendt til et tekstfelt delegeret som en del af sekvensen for at redigere sin tekst. Når brugeren udfører en handling, der normalt ville starte en redigeringssession, tekstfeltet kalder textFieldShouldBeginEditing: metode først at se, om redigering egentlig skulle fortsætte. I de fleste tilfælde vil du blot returnere JA fra denne metode til at tillade redigering for at fortsætte.
  • Teksten felt kalder textFieldShouldReturn: metode, når brugeren vandhaner på knappen Retur på tastaturet for at finde ud af, om den skal behandle Return. Du kan bruge denne metode til at gennemføre enhver brugerdefineret adfærd, når knappen Return er tappet, men til dit formål, skal du blot returnere JA (som er standard), selvom du kunne vende tilbage NEJ at ignorere på knappen Retur.
  • Efter at have sagt "ja" til dette og hint, sker den egentlige handling med textFieldDidEndEditing: metode, som kaldes efter tekstfeltet fratræder sin første responder status til at fortælle den delegerede at redigering er stoppet for det angivne tekstfelt, så du nu har den redigerede wordsOfWisdom (som er de ord, der Rul ned på iPad'ens skærm i denne app).
  • Dernæst du giver en speedChanged metode (af typen IBAction) til at håndtere en ændring i hastighed, der bruger stedfortræderens changeSpeed ​​metode til straks ændre hastigheden på animationen i visningen, når brugeren ændrer den i Modal visningen.
  • Du også levere en udført fremgangsmåde, der håndterer muligheden for en tomme tekstfelt. Koden tildeler tekstfeltet tekst til wordsOfWisdom kun hvis feltet ikke er theTextField.text isEqualToString: @ "".

© 2020 Zajacperrone.com | Contact us: webmaster# zajacperrone.com