2017-03-21 4 views
0

Ich habe eine Methode, in der meine Daten holen ausführt und ich habe eine HUD-Ansicht, die ich ausblenden möchte, sobald das Datenholen abgeschlossen ist. Mein Hud startet, wenn eine Ansicht geladen wird. Hier ist mein Code:Aufruf einer Funktion bei Abschluss des Datenabrufs vom Server Swift

override func viewDidLoad() { 
    HUD.show(.progress) 
} 

func fetchData() { 
    // performs fetch data 
    HUD.hide(afterDelay: 1.0) 
} 

Wenn Daten abrufen abgeschlossen ist, möchte ich HUD anzeigen ausblenden. Ich habe diese Verbergen-Funktion am Ende der Methode geschrieben, aber ihren Stopp, noch bevor das Datenholen abgeschlossen ist.

+0

Die Methode, die Daten wahrscheinlich in einer asynchronen Weise ausgeführt wird holen. Platzieren Sie den Code im Abschlussblock der Funktion. –

Antwort

1

Verwenden Sie closure in swift, um zu erreichen, was Sie versuchen zu tun.

Beispiel:

override func viewDidLoad() 
{ 
    HUD.show(.progress) 
    fetchData { 
     HUD.hide(afterDelay: 1.0) 
    } 
} 

func fetchData(completionHandler:(()->())?) 
{ 
    //TODO: fetch you data 
    //After data is fetched call completionHandler 
    completionHandler?() 
} 
+1

Danke Kumpel. Super, es hat funktioniert. –

Verwandte Themen