2017-03-21 28 views
0

我有一個方法,在該方法中我的數據讀取正在執行,並且我有一個HUD視圖,我希望在數據獲取完成後立即隱藏該視圖。我的Hud在視圖加載時啓動。這裏是我的代碼:在完成從服務器獲取數據時調用一個函數Swift

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

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

當數據提取完成時,我想隱藏HUD視圖。我在方法的末尾寫了這個隱藏函數,但是在數據讀取完成之前它就停止了。

+0

其中獲取數據可能以異步方式運行的方法。將代碼放在函數的完成塊中。 –

回答

1

使用closureswift來實現你正在嘗試做的事情。

實施例:

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

謝謝隊友。真棒它的工作。 –