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 :

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
    }
et

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
 
    }
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 ...

Merci d'avance pour vos précieux conseils !

Flyer-73