2017-05-25 1 views
0

J'ai plusieurs boutons dans mon FirstViewController chaque bouton quand il est cliqué, me mènera à la SecondViewController. à l'intérieur SecondViewController il y a un textfield, le textfield.text devrait recevoir une valeur spécifique basée sur le bouton cliqué.Est-il possible de détecter quand UIButton est touché?

Est-il possible de détecter quel bouton est enfoncé?

+0

L'avez-vous résolu? ou encore face à problème avec elle? –

Répondre

0

Le bouton se passe comme argument sender de l'action, si vous déclarez votre action comme ceci:

@IBAction func buttonWasTapped(_ sender: Any) { 
    guard let button = sender as? UIButton else { return } 
    // use button… 
} 
0

Si vous utilisez un Segue, le bouton est le sender dans prepare(for:sender:). Vous pouvez remplacer cela sur le contrôleur de vue initiateur.

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    guard let button = sender as? UIButton else { return } 
    // use button… 

Et le contrôleur de vue cible est available as a property sur l'objet Segue.

+0

J'utilise segue et mon bouton est déclaré de cette façon "func kholaHospital (_ sender: Any) { performSegue (withIdentifier:" fromKhola ", expéditeur: self) }" comment puis-je ajouter cette fonction dans la fonction de préparation pour détecter quand il est touché? –

+0

Vous devez définir une variable sur votre contrôleur de vue sur la valeur du bouton. SelfsomeVariable = button.text Ensuite, vous devez attacher cette valeur à votre SecondViewController dans prepareForSegue. – GregP