2016-03-11 47 views
0
override func viewWillDisappear(animated: Bool) { 
    var done = false 
    updateCurrentUserInDB(self.currentUser, onCompleted: { done = true }) 
    while !done { } 
} 

有沒有適當的方法可以做到這一點?如何在viewDisappear之前等待函數結束?

+0

只需在該功能結束或完成後執行導航或重定向。 – sourav

+0

@sourav:對不起,你是什麼意思?哪個導航或重定向,以及哪個功能? – Thomi

+0

在生命週期回調中等待並不是一個好主意。你爲什麼需要這樣做? –

回答

0

首先爲什麼你的更新需要這麼長時間?

一個好方法是在用戶進行更改時不斷更新數據。如果你有一個「取消」按鈕,你需要實現一些東西來回滾。

無論如何,如果你不能使保存過程更快,我會建議轉發用戶對象到主視圖,在那裏更新用戶(同時顯示進度指示器)並重新加載完成塊內的主視圖。

編輯:更好的方法是將數據傳回主視圖(請參見上文),使用該數據更新主視圖並在後臺與後端同步。這樣用戶不必等到同步完成後+您不必向後端發出單獨的請求,以請求剛剛發送給它的相同數據。

+0

也許是因爲它是在遠程服務器上調用rest api的?在後端,我使用node.js和mongodb。 – Thomi

+0

我明白了,沒有冒犯。你的方法名稱建議本地... 所以我會採取我的另一種方法,然後將數據傳遞到主視圖,與您的後端同步並重新加載視圖 – warly

相關問題