Swift - déterminer quel bouton a été pressé avec interrupteur
J'ai 4 boutons d'appel d'une fonction. Selon sur quel bouton a été pressé j'ai besoin de cacher le bouton à l'intérieur de la fonction qui a appelé après avoir appuyé sur.Je ne sais pas quel bouton a été pressé donc j'ai essayé d'attribuer des étiquettes pour chacun des 4 boutons pour identifier par la balise et de l'utilisation de l'interrupteur
J'ai essayé ce
switch sender.tag {
case 1:
self.button1.hidden = true
case 2:
self.button2.hidden = true
case 3:
self.button3.hidden = true
case 4:
self.button4.hidden = true
}
mais cela ne fonctionne pas de compilateur dit à propos de l'utilisation de suspens identificateur '"expéditeur"
Comment faire cela correctement ?
EDIT:
Ensemble de la fonction
if self.allowMistakeVar {
let mistakeAlert = UIAlertController(title: "Here is title!", message: "message of alert", preferredStyle: .Alert)
let okay = UIAlertAction(title: "OK", style: .Cancel) { UIAlertAction in
self.allowMistakeVar = false
self.allowMistakeButton.enabled = false
switch sender.tag {
case answer1Text:
self.answer1Text.hidden = true
case answer2Text:
self.answer2Text.hidden = true
case answer3Text:
self.answer3Text.hidden = true
case answer4Text:
self.answer4Text.hidden = true
}
}
mistakeAlert.addAction(okay)
self.presentViewController(mistakeAlert, animated: true, completion: nil )
} else {
une autre affaire..
}
Comment faire pour appeler la fonction depuis le 4 boutons ?
s'il vous plaît montrer votre fonction entière où vous avez mis ce code.
Kukadiya updatet post
après que le bouton est pressé-je vérifier si le titre est égal à la variable A. si non, j'ai appeler la fonction à l'intérieur de laquelle j'ai vérifier si une autre variable B est vraie ou fausse et si c'est vrai j'ai besoin de cacher le bouton a été pressé
Pourquoi vous voulez toujours utiliser les balises pour déterminer la UIButton ? Si la fonction appelée est un paramètre sender, que vous connaissez le UIButton qui a appelé la fonction par le biais de ce paramètre
s'il vous plaît montrer votre fonction entière où vous avez mis ce code.
Kukadiya updatet post
après que le bouton est pressé-je vérifier si le titre est égal à la variable A. si non, j'ai appeler la fonction à l'intérieur de laquelle j'ai vérifier si une autre variable B est vraie ou fausse et si c'est vrai j'ai besoin de cacher le bouton a été pressé
Pourquoi vous voulez toujours utiliser les balises pour déterminer la UIButton ? Si la fonction appelée est un paramètre sender, que vous connaissez le UIButton qui a appelé la fonction par le biais de ce paramètre
OriginalL'auteur Alexey K | 2015-08-13
Vous devez vous connecter pour publier un commentaire.
Essayer cela,
1) Affecter une balise pour chaque bouton
2) Puis vérifiez votre commune bouton de action
OriginalL'auteur Manikandan D
Pourquoi vous voulez toujours utiliser les balises pour déterminer la UIButton ? Si la fonction appelée est un paramètre sender alors vous savez que la UIButton qui a appelé la fonction par le biais de ce paramètre.
OriginalL'auteur JulianM
Mettre votre code comme ci-dessous comme je l'ai montré:
--> en raison de cela, vous obtenez de l'expéditeur facilement.
-->vérifiez Également que vous n'avez pas oublié de donner des balises pour le UIButtons.
OriginalL'auteur Jecky
Je sais que cela a été répondu, mais si vous définissez ce jusqu'au bureau de l'IB, alors je vous recommande de vérifier si le bouton a été pressé en utilisant le @IBOutlet variables comme des cas.
Maintenant, vous raccorder les boutons de votre PLUME à chaque @IBOutlet, et tous les boutons à la une @IBAction didHitButton.
C'est assez simple, et vous n'avez pas à vous soucier des balises ou des changements de noms.
OriginalL'auteur GJ Nilsen
Plutôt puis à l'aide d'une instruction switch, vous pouvez simplement utiliser l'expéditeur directement.
Notez que vous devez spécifier l'expéditeur est un UIButton (donc cela ne fonctionne que si la fonction n'est appelée à partir d'un bouton).
Cela réduit le code et vous permet également d'ajouter des boutons supplémentaires sans modification de code.
OriginalL'auteur Matt G