Comment utiliser une IBAction pour de multiples boutons en Swift?
J'ai plusieurs boutons de chacun avec la possibilité de changer la langue de l'application. Au lieu d'avoir à créer plusieurs IBActions pour chaque bouton est-il un moyen de les avoir tous connectés à une IBAction et de changer la langue basée sur le bouton pressé? Je pense à une instruction switch serait bon d'utiliser dans cette situation, mais pas exactement comment le configurer.
- Oui, bonne idée ;D
- Une idée de comment en créer un qui gère ibactions?
- expéditeur avons de nombreux biens: le titre, le tag et d'autres. aussi, vous pouvez créer votre propre bouton de classe avec l'identification de la propriété.
Vous devez vous connecter pour publier un commentaire.
Dans Interface Builder, sélectionnez les Attributs de l'Inspecteur et de l'ensemble de la Balise pour chaque bouton avec un numéro unique, alors vous pouvez faire quelque chose comme ceci:
Pour connecter l'action à plusieurs boutons: dans Interface Builder, droit-cliquez sur ViewController dans le point de vue de la hiérarchie, puis faites un clic gauche pour faire glisser l'action de connexion à chaque bouton.
ViewController
dans le point de vue de la hiérarchie, puis faites un clic gauche pour faire glisser l'action de connexion pour chaque boutonOui, une instruction switch est le chemin à parcourir ici. Pour un UIButton, vous lier à un sélecteur qui est appelée lorsque l'utilisateur interagit avec le bouton, généralement le TouchUpInside événement. Le addTarget méthode, et un sélecteur de signatures (apple.com) De ces, vous voulez utiliser une méthode dans le format
@IBAction func doSomething(sender: UIButton)
ou@IBAction func doSomething(sender: UIButton, forEvent event: UIEvent)
, ainsi qu'une référence au bouton qui a déclenché l'événement est passé pour le sélecteur.Dans votre ViewController code, vous aurez des références à votre UIButtons (éventuellement dans un storyboard, ou créé manuellement). Disons que vous avez
Vous connecter tous à la même méthode, et de la direction générale de la logique fondée sur ce qui était l'expéditeur. par exemple:
Remarque: en Cas de déclarations en Swift doit être exhaustive, de sorte que vous devez inclure un cas de défaut, même si elle ne doit jamais être appelée.
Ne définissez pas de tag si vous avez de référence pour le bouton.
Vous pouvez simplement comparer la référence au lieu de balises. De cette façon, vous n'aurez pas introduire un nouveau bug, car contrairement à un tag que vous tapez vous-même, de référence est créé par le compilateur automatiquement.