[问题] 让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