Comment ajouter des méthodes à un contrôleur de vue modale dans votre app ipad

Si votre application iPad a une vue modale, vous avez besoin d'ajouter des méthodes à la SettingsViewController.m (mise en œuvre) fichier. Ces méthodes gèrent Modal de vue de l'application iPad et d'effectuer toutes les actions saisies par l'utilisateur.

Il permet de savoir ce que chaque section du code du modèle fourni par le fait, et il est particulièrement utile si vous utilisez # Pragma marque déclarations pour marquer chaque section de sorte que vous pouvez passer rapidement à la section pertinente en cas de besoin. L'exemple de code suivant, qui fait partie d'une application appelée pensées profondes, comprend ces déclarations.

#import "SettingsViewController.h" import "DeepThoughtsViewController.h" import "Constants.h"@implementation SettingsViewController @ synthétiser délégué, wordsOfWisdom, curseur - # pragma marque - cycle de # pragma marque Vue de vie / * // L'initialisation désignée. Remplacer si vous créez le contrôleur programmation et souhaitez effectuer la personnalisation qui ne convient pas pour viewDidLoad.- (id) initWithNibName: (NSString *) nibNameOrNil bundle: (NSBundle *) nibBundleOrNil {if ((self = [super initWithNibName: nibNameOrNil bundle: nibBundleOrNil])) {// initialisation personnalisée} return auto - *} // * // Mise en place viewDidLoad faire configuration supplémentaire après le chargement de la vue, généralement à partir d'un nib.- (void) viewDidLoad {[super viewDidLoad] -} * / - (void) viewDidLoad {[super viewDidLoad] -self.view.backgroundColor = [UIColor clearColor] -slider.value = + kMaxSpeed ​​- ((DeepThoughtsViewController *) (self.parentViewController)) Vitesse -.} # pragma marque - # pragma marque textField- (BOOL) textFieldShouldBeginEditing: (UITextField *) textField {[textField setReturnKeyType: UIReturnKeyNext] -retour OUI -} - (BOOL) textFieldShouldReturn: (UITextField *) textField {[textField resignFirstResponder] -retour OUI -} - (void) textFieldDidEndEditing: (UITextField *) textField {wordsOfWisdom = TextField.text -} # pragma marque - # pragma marque Controls (IBAction) speedChanged: (id) sender {[délégué changeSpeed: [(UISlider *) la valeur de l'expéditeur]] -} - (IBAction) fait {if (! [theTextField.text isEqualToString: @ ""]) wordsOfWisdom = theTextField.text- [self.delegate settingsViewControllerDidFinish: auto] -} # pragma marque - # pragma marque orientation-(BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) {// surchargée interfaceOrientation à permettent à tout orientation.return OUI -} # pragma marque - # pragma marque Mémoire Management- (void) {// didReceiveMemoryWarning libère la vue si elle ne dispose pas d'un superview [super didReceiveMemoryWarning] -. // libérer toutes les données mises en cache, images , etc. qui ne sont pas en cours d'utilisation} -. (void) viewDidUnload {[super viewDidUnload] - // libérer toutes les sous-vues de la vue principale .// par exemple retenu self.myOutlet = nil -} - (void) dealloc {[super dealloc] -} @ end

Ok, voici ce que le code précédent fait:

  • Bien que le property déclaration dans le fichier d'en-tête indique au compilateur qu'il existe des méthodes d'accesseurs, vous avez besoin d'un synthesize déclaration pour une propriété pour créer ces méthodes. La synthesize déclaration indique au compilateur pour créer des méthodes d'accès pour vous - un pour chaque property déclaration.

  • La viewDidLoad méthode définit l'arrière-plan et la vitesse du curseur (qui contrôle la vitesse de défilement de mots bas de l'écran iPad).

  • La UITextFieldDelegate protocole définit les messages envoyés à un délégué de champ de texte dans le cadre de la séquence d'éditer son texte. Lorsque l'utilisateur effectue une action qui serait normalement commencer une session d'édition, le champ de texte appelle la textFieldShouldBeginEditing: première méthode pour voir si l'édition devrait effectivement procéder. Dans la plupart des cas, vous auriez tout simplement retourner OUI à partir de cette méthode pour permettre l'édition de procéder.

  • Le champ de texte appelle la textFieldShouldReturn: méthode chaque fois que l'utilisateur tape sur la touche Retour sur le clavier pour savoir si elle doit traiter le retour. Vous pouvez utiliser cette méthode pour mettre en oeuvre tout comportement personnalisé lorsque le bouton de retour est engagée, mais pour vos fins, vous retournez simplement OUI (qui est la valeur par défaut), bien que vous pourriez revenir NON d'ignorer le bouton de retour.

  • Après avoir dit «oui» à ceci et cela, la véritable action se passe avec le textFieldDidEndEditing: méthode, qui est appelé après le champ de texte démissionne de son statut de premier répondeur de dire au délégué qui a cessé de l'édition pour le champ de texte spécifié, de sorte que vous avez maintenant la éditée Paroles de sagesse (qui sont les mots qui défilent en bas de l'écran de l'iPad dans cette application).

  • Ensuite, vous fournissez un speedChanged méthode (de type IBAction) Pour gérer un changement de vitesse, qui utilise le délégué de changeSpeed méthode pour changer immédiatement la vitesse de l'animation dans la vue lorsque l'utilisateur change dans la vue modale.

  • Vous fournissez également une terminé méthode qui gère la possibilité d'un champ de texte vide. Le code affecte le texte du champ de texte Paroles de sagesse seulement si le champ est pas theTextField.text isEqualToString: @"".


» » » » Comment ajouter des méthodes à un contrôleur de vue modale dans votre app ipad