Cette question peut déjà être posée sur la cachette des boutons, mais je me demandais si je pouvais simplement cliquer sur un bouton qui affecterait les variables dans un autre contrôleur d'affichage. Par exemple, j'ai FirstViewController et EndViewController. Il y a un bouton dans EndviewController que l'utilisateur appuie sur lequel changer une variable dans la FirstViewController. Existe-t-il un moyen d'accéder au bouton EndviewController à partir de la FirstViewController?
Je n'ai pas beaucoup essayé jusqu'à présent, sauf le bouton EndviewController dans la FirstViewController (qui n'a pas fonctionné). P> class firstViewController: UIViewController {
@IBAction func nextButton(_ sender: Any) { //button that sits in endViewController
}
}
3 Réponses :
Voici un peu d'aide sur les délégués entre deux contrôleurs de vue: P>
Étape 1: Strong> Fabriquez un protocole dans l'UIViewController que vous allez retirer / envoyer les données. P> override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "mySegue" {
let vc = segue.destination as! FooTwoViewController
vc.colorString = colorLabel.text
vc.delegate = self
}
}
Vous pouvez donner un crédit à l'auteur d'origine Stackoverflow.com/a/25792213/4085910
Puis-je envoyer une SEGUE en arrière (à partir de la deuxièmeViewController dans la FirstViewController)?
Savez-vous même ce qu'est une Segue? Qu'essayez-vous d'atteindre? Voulez-vous revenir en arrière ou quoi? @Deadlyelmo
J'ai compris. Merci quand même @swiftiswift
Il y a 2 méthodes: p>
Vous pouvez créer une SEGUE à partir du bouton EndviewController à FirstViewController dans Storyboard. Vous pouvez configurer la préparation de Func (pour SEGUE: UISTORYBOORDSUEGUEGE, SENDER: Tout?) Pour cela. Laisser endvc = endviewcontroller () endvc.Color = "bleu" p> li>
Vous pouvez conserver la variable dont la valeur doit être modifiée en tant que type de données statique. Dans l'action de clic de bouton, vous pouvez accéder à la variable comme étant donné que, Endviewcontroller.color = "rouge". Veuillez utiliser des variables statiques uniquement si vous souhaitez que d'autres ViewControlers lui accèdent directement. P> li> ol>
contrôleur de première vue strud> Le code du premier contrôleur d'affichage est p> Notez l'utilisation de notre protocole personnalisé DataenteredDelegate. p> Le code de la seconde vue contrôleur est p> Notez que le Le protocole est en dehors de la classe de contrôleur d'affichage. P> C'est ça. Exécutez l'application maintenant, vous devriez être capable d'envoyer des données à partir du deuxième contrôleur d'affichage au premier. P> message original: https://stackoverflow.com/a/33229483/13783496 p> p>
Qu'est-ce que vous avez essayé jusqu'à présent? Inclure votre code en question
@jawadali est la modification de mon poteau suffisant? Merci!