Bienvenue dans cette astuce d'entrée de gamme sur l'utilisation des feuilles d'action. Dans ce tutoriel, vous apprendrez à créer une feuille d'actions simple de manière dynamique en utilisant le contenu d'un tableau. Cette technique vous permettra de déterminer le nombre de boutons à placer sur la feuille d’action au moment de l’exécution, par opposition à la compilation. Une technique pratique pour avoir!
Nous allons créer une application simple dans ce tutoriel qui nous montrera une liste de fruits dans une fiche d'actions. Si vous sélectionnez un fruit, le texte d'une étiquette sera mis à jour avec le fruit sélectionné..
Ouvrez Xcode et sélectionnez «Créer un nouveau projet Xcode». Sélectionnez «Single View Application» et cliquez sur «next». Entrez un nom pour votre projet (j'ai appelé le mien «Fruits»), assurez-vous de bien sélectionner l'iPhone pour les appareils, puis les cases à cocher «Utiliser les scénarimages» et «Utiliser le comptage de référence automatique». Après cela, cliquez sur "Suivant" et choisissez un emplacement pour enregistrer votre projet avant de cliquer sur "Créer"..
Nous souhaitons uniquement utiliser cette application en mode portrait. Pour ce faire, accédez à la section Orientations de l'interface prise en charge et désélectionnez les orientations Paysage..
Ouvrez le storyboard et faites glisser une étiquette de la bibliothèque d'objets vers le contrôleur de vue. Placez-le en haut du contrôleur de vue et assurez-vous qu'il est centré et large de 280 pixels. Ouvrez l'inspecteur d'attributs et modifiez l'alignement au centre. Enfin, supprimez le texte.
Ensuite, faites glisser un bouton de la bibliothèque d'objets vers le contrôleur de vue et placez-le juste en dessous de l'étiquette. Double-cliquez sur son titre et remplacez-le par «Fruits»..
Ouvrez ViewController.m et modifiez le code pour lire comme suit:
#import "ViewController.h" @interface ViewController ()@property (nonatomic, faible) IBOutlet UILabel * fruitLabel; @property (nonatomic, strong) fruits NSMutableArray *; - (IBAction) showFruits: expéditeur (id); @fin
Ici, nous créons un point de vente pour notre étiquette, un tableau modifiable pour stocker nos fruits, et nous créons une action pour afficher la feuille d'actions. Nous avons également ajouté le UIActionSheetDelegate, afin que nous puissions mettre à jour l’étiquette lorsque vous sélectionnez un fruit dans la feuille d’action. Notez que tout cela a été fait dans l'extension de classe car aucune de ces propriétés ou méthodes ne doit être exposée à une classe externe..
Maintenant que nous avons créé la sortie et l’action, il ne reste plus qu’à les associer aux éléments correspondants. Ouvrez le Storyboard et connectez le fruitsLabel sortie avec l'étiquette et le showFruits:
action avec le bouton. Sélectionner Retouche à l'intérieur en tant qu'événement de contrôle pour le bouton.
Ouvrez ViewController.m et créez la méthode d’initialisation suivante:
-(id) initWithCoder: (NSCoder *) aDecoder if (self = [super initWithCoder: aDecoder]) self.fruits = [[NSMutableArray alloc] initWithObjects: @ "Apple", @ "Orange", @ "Banana", @ "Fraise", @ "pêche", rien]; retourner soi-même;
Ici, nous créons notre gamme de fruits et y stockons des fruits.
Ajoutez le code suivant sous le didReceiveMemoryWarning
méthode:
- (IBAction) showFruits: (id) expéditeur UIActionSheet * actionSheet = [[UIActionSheet alloc]] initWithTitle: @ délégué "Sélectionnez un fruit": self cancelButtonTitle: nil destructiveButtonTitle: nil otherButtonTitle: nil]; pour (NSString * fruit in self.fruits) [actionSheet addButtonWithTitle: fruit]; actionSheet.cancelButtonIndex = [actionSheet addButtonWithTitle: @ "Annuler"]; [actionSheet showInView: self.view];
Nous créons d’abord une feuille d’action, comme vous le feriez normalement. Nous lui donnons un titre et un délégué, mais nous n’ajoutons aucun bouton, pas même un bouton annuler. Si nous devions ajouter un bouton Annuler ici et tous les autres boutons plus tard, le bouton Annuler serait en haut de la liste, au lieu de celui en bas..
Ensuite, nous utilisons une boucle d'énumération rapide pour parcourir tous les fruits stockés dans le tableau de fruits créé précédemment. Dans cette boucle for, nous ajoutons des boutons pour tous les fruits à la feuille d'actions. Après la boucle for, nous ajoutons un bouton d'annulation à la feuille d'actions. Comme vous pouvez le constater, nous le faisons en ajoutant un bouton avec le titre «Annuler» à la liste. cancelButtonIndex. De cette façon, la fiche d’action sait que le bouton Annuler doit figurer au bas de la liste. Enfin, nous montrons la fiche d’action de la manière habituelle.
Ajoutez la méthode de protocole de délégué de la feuille d’action suivante sous le showFruits:
action:
- (void) actionSheet: (UIActionSheet *) actionSheet clickedButtonAtIndex: (NSInteger) buttonIndex if (buttonIndex! = actionSheet.cancelButtonIndex) self.fruitLabel.text = [self.fruits objectAtIndex];
Cette méthode de délégation est appelée lorsque vous appuyez sur un bouton de la feuille d'action. Premièrement, nous vérifions si le bouton pressé est pour un fruit ou le bouton annuler. Nous faisons cela en comparant l'index du bouton sélectionné avec l'index du bouton d'annulation. Si le bouton sélectionné concerne un fruit, nous mettons à jour l'étiquette avec le fruit sélectionné..
Merci d'avoir lu cette astuce sur la création d'une feuille d'action avec des éléments d'un tableau. J'espère que tu as trouvé ça utile! Si vous avez des questions ou des commentaires sur ce conseil, laissez-les dans la section commentaires ci-dessous..