2014-09-29 63 views
0

我有一個NavigationViewController其中UITableView在其中。加載後,我進行異步後端服務器調用以獲取一些數據以填充視圖。返回時,我會致電updateViewiOS更新後調用viewDidAppear

我發現有時我只會看到導航欄出現,沒有表格視圖。從我的調試中,這發生在我的updateView被稱爲AFTERviewDidAppear

我確實有一個[self.taboleView reloadData]在我的updateView的末尾,但我猜這在viewDidAppear已經解僱時沒有幫助?

對此有點困惑。 任何人有任何想法如何解決這個時間問題?

這發生在使用iOS8的iPhone上。

謝謝!

+0

由於它是一個異步服務器調用,應用程序繼續執行主線程(我認爲)。在服務器響應到達時,您的異步庫中是否沒有委託函數? – Leandro 2014-09-29 15:15:26

+0

將異步請求更改爲同步請求,然後告訴我它是否有任何區別。 – 2014-09-29 15:28:20

+0

你一定要保持它的異步,所以我一直處理這個問題的方式是在viewWillAppear中啓動請求,在屏幕上放置某種加載指示器,然後在請求返回時刪除加載指示器,然後重新加載您的視圖。就那麼簡單。 – Mike 2014-09-29 15:33:50

回答

0

答案是重新加載/更新主線程上的視圖。 所以我updateView
結束時,我改變了我的[self.tableView reloadData]

[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:TRUE]; 

它固定我的錯誤!

相關問題