Bonjour bonjour,
Après plusieurs heures de recherches infructueuses je me tourne vers vous en espérant trouver ma solution certainement tout bête ...
Je développe une appli IOS avant tout pour me permettre d'apprendre d'avantage l'utilisation de Xcode et de Swift pour IOS![]()
J'explique mon problème : Lors d'un clique par l'utilisateur sur un bouton de l'UI cela lance la fonction correspondante au bouton, dans cette fonction je demande notamment :
1 : Cacher le bouton actuel pour
2 : le remplacer par un second bouton et
3 : Arrêter un timer.
Enfin (et c'est la que les problèmes arrivent !) je demande l'execution d'une autre fonction qui doit m'ouvrir une Alert et attendre la réponse de l'utilisateur avant de passer la suite du code... mais mon problème c'est que le code se déroule et effectue les actions sans attendre la réponse de l'utilisateur ...
CF les codes de mes deux fonctions :
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @IBAction func StopFlight(_ sender: Any) {// on clique sur stop : // on change la commande du btn StopBtn.isHidden = true StartBtn.isHidden = false // on stop le timmer StopTimer() // On questionne l'utilisateur pour connaitre son lieu de depart VarDepart = AskDepart() TestLbl.text = String(VarDepart) print("VarDepart après return: \(VarDepart)") FlightTimeLbl.isHidden = true }
Je ne sais pas vraiment pourquoi mon code n'attend pas la fin de la fonction AskDepart() pour passer à la suite de la fonction StopFlight ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 func AskDepart()->String{ // on ouvre une alert pour demander le lieu de depart let Dpalert = UIAlertController(title: nil, message: "Lieu de depart ?", preferredStyle: .alert) Dpalert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil)) Dpalert.addTextField(configurationHandler: { textField in textField.placeholder = "Lieu de depart" textField.textAlignment = .center }) Dpalert.addAction(UIAlertAction(title: "Next", style: .default, handler: { action in if let depart = Dpalert.textFields?.first?.text { print("Departure : \(depart)") // juste pour verifier le bon fonctionnement self.VarDepart = String(depart) print("VarDepart : \(self.VarDepart)") // pour verifier le passage de depart dans la variable générale VarDepart et pour faire un Return de la réponse User } })) self.present(Dpalert, animated: true) return VarDepart }
Merci d'avance pour vos précieux conseils !
Flyer-73
Partager