2016-06-08 109 views
-1

我想在我的主視圖控制器加載之前更新我的模型對象。目前,更新視圖的代碼在我的模型從服務器接收數據之前運行,所以主視圖顯示錯誤的數據。如何延遲viewDidLoad()直到從服務器響應?

我正在使用PubNub。在appdelegate中設置了一個監聽器,可以在收到數據時觸發。

+1

你需要實現類似於'updateData'來從後端加載,並用一些加載指示器重新加載你的'viewController',這不是一個好主意在主線程上等待服務器響應的任何東西 –

+3

你不想要出於任何原因延遲'viewDidLoad'。這是一個糟糕的用戶體驗,如果它發生在錯誤的時間,看門狗進程可能會終止你的應用(0x8badf00d; lol)。相反,你應該讓你的應用程序顯示最後已知的數據和/或一些調光視圖和/或'UIActivityIndi​​catorView',讓用戶知道更多的數據進來。 – Rob

回答

2

千萬不要延遲viewDidLoad() - 當沒有數據存在時,您需要有一個空白/加載屏幕來顯示。一旦數據到達,它就會調用一個更新函數來顯示它。

+1

我同意Cesar。試圖延遲viewDidLoad是不好的mojo,並且可能會導致你的應用程序被終止,因爲系統會認爲它被掛起。在等待服務器時需要顯示SOMETHING。浮動「加載,請稍候」視圖與活動指標是一種可能性。 –