[問題] 讓tableView等待data下載完再開始建立

作者: hehehaha   2018-05-17 08:56:46
如何讓tableView等待data下載完再開始建立
各位好
我要做的事情是
1.從firebase下載data
2.讓data顯示在tableView的cell裡面
我目前設定是:
1.建一個getData(),結束時會建立一個Array,也就是要放入cell的內容
2.把這個getData()放在didFinishLaunchingWithOptions裡面
3.一進到app,第一個view就是tableView
遇到的狀況是:
1.如果在網路不夠快,或是firebase稍慢的時候,viewWillAppear、viewDidAppear執行的時候,data尚未下載完畢,這時候首頁就會空白一片。
2.用print的方式可以看到,在viewWillAppear以及viewDidAppear執行的時,numberOfRowsInSection其實已經return了好幾次,但這時候數字都是0,也可以看到後續其實不定時的都會再更新幾次。
3.有時候幸運一點?,data下載比較快,會在某次自動更新前得到data,然後顯示在頁面上。
4.但如果在它自動更新次數用完之前,data還沒下載完,就會像最開始講的一樣,空白一片在那邊。
5.這時候如果按home鍵,出去再進來,就會看到資料顯示。
我的問題是:
1.有沒有辦法,讓tableView等到data下載完再更新?
2.有沒辦法,強迫自動更新一直到data下載完為止?
3.或是有其他的解決方式,請告訴我關鍵字,我來嘗試。
以上,我用我目前的知識盡量說明了,如果有遺漏的地方,請告訴我。
不管有沒有答案,都先感謝大家,謝謝。
作者: LFimi   2018-05-17 09:21:00
資料下載完的時候 tableView.reloadData() 就好了
作者: gundam00 (傻那駕駛中)   2018-05-17 11:18:00
樓上說的沒錯 在你的getData()最後呼叫tableiew.reloadData()內 然後都沒東西就顯示empty message 不然很醜XD
作者: rice0617 (LittleRice)   2018-05-18 10:19:00
資料在AppDelegate get的話 我會用NotificationCenter

Links booklink

Contact Us: admin [ a t ] ucptt.com