Wie Methoden zu einem Modal-View-Controller in Ihrem iPad App hinzufügen

Wenn Ihr iPad App eine modale Ansicht hat, müssen Sie Methoden, um das hinzufügen SettingsViewController.m (Implementierung) Datei. Diese Methoden verwalten die modalen iPad App Ansicht und führen Sie alle Benutzereingaben Aktionen.

Es hilft zu wissen, was jeder Abschnitt der Vorlage bereitgestellten Code tut, und es ist besonders hilfreich, wenn Sie verwenden # Pragma Zeichen Aussagen jeden Abschnitt zu markieren, so dass Sie schnell zu den entsprechenden Abschnitt zu springen, wenn nötig. Das folgende Beispiel-Code, der Teil einer App namens Deep Thoughts, enthält diese Aussagen ist.

#import "SettingsViewController.h" #import "DeepThoughtsViewController.h" #import "Constants.h"@implementation SettingsViewController @ synthetisieren Delegierter, wordsOfWisdom, Schieber - # Pragma Zeichen - # Pragma Zeichen anzeigen Lebenszyklus / * // Der designierte initializer. Außer Kraft setzen, wenn Sie die Steuerung programmatisch und wollen erstellen Anpassungen vornehmen, die nicht geeignet für viewDidLoad.- ist (id) initWithNibName: (NSString *) nibNameOrNil Bundle: (NSBundle *) nibBundleOrNil {if ((self = [super initWithNibName: nibNameOrNil Bundle: nibBundleOrNil])) {// Benutzerdefinierte Initialisierung} return selbst -} * // * // Implementieren viewDidLoad zusätzliche Einrichtung zu tun, nachdem die Ansicht Laden, in der Regel aus einem nib.- (void) viewDidLoad {[super viewDidLoad] -} * / - (void) viewDidLoad {[super viewDidLoad] -self.view.backgroundColor = [UIColor Clear] -slider.value = + kMaxSpeed ​​- ((DeepThoughtsViewController *) (self.parentViewController)) Geschwindigkeit -.} # Pragma mark - # Pragma Marke textField- (BOOL) textFieldShouldBeginEditing: (UITextField *) textfield {[textfield setReturnKeyType: UIReturnKeyNext] -return JA -} - (BOOL) textFieldShouldReturn: (UITextField *) textfield {[textfield resignFirstResponder] -return JA -} - (void) textFieldDidEndEditing: (UITextField *) textfield {wordsOfWisdom = TextField.text -} # Pragma mark - # Pragma Marke Controls- (IBAction) speedChanged: (id) sender {[Delegat changeSpeed: [(UISlider *) Senderwert]] -} - (IBAction) getan {if (! [TheTextField.text isEqualToString: @ ""]) wordsOfWisdom = theTextField.text- [self.delegate settingsViewControllerDidFinish: self] -} # Pragma mark - # Pragma Zeichen Orientierungs- (BOOL) ShouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {// außer Kraft gesetzt zu erlauben jede orientation.return YES -} # Pragma Zeichen - # Pragma Zeichen Speicher Management- (void) {// didReceiveMemoryWarning die Ansicht Mitteilungen, wenn es nicht einen Super hat [super didReceiveMemoryWarning.] - // lassen sie alle zwischengespeicherten Daten, Bilder , etc., die nicht in Gebrauch sind}. - (void) ViewDidUnload {[super ViewDidUnload] - // Lassen Sie jede Subviews des Haupt beibehalten view.// zB self.myOutlet = nil -} - (void) dealloc {[super dealloc] -} @ end

Okay, hier ist das, was der vorhergehende Code tut:

  • Obwohl die @Eigentum Erklärung in der Header-Datei teilt dem Compiler mit, dass es Zugriffsmethoden, benötigen Sie ein @synthesize Anweisung für eine Eigenschaft, diese Methoden zu erstellen. Das @synthesize Anweisung teilt dem Compiler Accessormethoden für Sie zu erstellen - eine für jeden @Eigentum Erklärung.

  • Das viewDidLoad Methode setzt den Hintergrund und die Geschwindigkeit für den Schieber (die die Geschwindigkeit von Worten steuert nach unten scrollen die iPad-Bildschirm).

  • Das UITextFieldDelegate Protokoll definiert die Nachrichten in einem Textfeld delegieren als Teil der Abfolge von der Bearbeitung der Text gesendet. Wenn der Benutzer eine Aktion ausführt, die normalerweise eine Bearbeitungssitzung beginnen würde, ruft das Textfeld der textFieldShouldBeginEditing: Verfahren zuerst zu sehen, ob die Bearbeitung sollte eigentlich gehen. In den meisten Fällen würden Sie einfach zurückgeben JA von dieser Methode Bearbeitung fortfahren zu können.

  • Das Textfeld ruft die textFieldShouldReturn: Methode, wenn der Benutzer die Return-Taste auf der Tastatur tippt, ob es sich um herauszufinden, sollte die Rückkehr zu verarbeiten. Sie können diese Methode verwenden, beliebige benutzerdefinierte Verhalten zu implementieren, wenn die Return-Taste abgegriffen wird, sondern auch für Ihre Zwecke, geben Sie einfach zurückgeben JA (Das ist die Standardeinstellung), obwohl man zurückkehren könnte NEIN die Return-Taste zu ignorieren.

  • Nach dem "Ja" sagen zu diesem und jenem, geschieht die eigentliche Handlung mit der textFieldDidEndEditing: Verfahren, die nach dem Textfeld tritt seinen ersten Responder-Status so zu sagen genannt wird, hat den Delegierten, dass die Bearbeitung für den angegebenen Textfeld gestoppt, dass Sie jetzt die bearbeitete haben Worte der Weisheit (Das sind die Worte, die auf den Bildschirm des iPad nach unten scrollen, in dieser App).

  • Als nächstes stellen Ihnen ein speedChanged Verfahren (vom Typ IBAction), Um eine Änderung in der Geschwindigkeit zu handhaben, die die Delegierten verwendet changeSpeed Methode, um sofort die Geschwindigkeit der in der Ansicht Animation ändern, wenn der Benutzer es in der Modal Ansicht ändert.

  • Sie liefern auch eine erledigt Verfahren, die die Möglichkeit eines leeren Textfeld behandelt. Der Code weist den Text des Textfeld Worte der Weisheit nur wenn das Feld nicht theTextField.text isEqualToString: @"".

Menü