表格视图未从数据库重新加载数据

时间:2019-07-04 19:30:32

标签: ios swift firebase-realtime-database tableview

我正在尝试在加载视图和显示视图时重新加载我的表视图。我正在从数据库中提取数据,所以我认为我的问题与速度有关。在我的视图中确实加载了该视图并且确实出现了该函数,在我尝试过在各个位置调用tableView.reloadData()时会调用此函数,但是在加载视图时,它不会使用值来加载表视图。点击博客按钮时,表格视图的确会填充。

func articleRefresh(){

        DataService.instance.getAllArticles { (returnedArticlesArray) in
            self.blogArray.removeAll()
            self.newsArray.removeAll()
            self.rosterArray.removeAll()
            self.draftArray.removeAll()
            self.articleArray.removeAll()
            for article in returnedArticlesArray {

                if article.category == "blog" {

                    self.blogArray.append(article)
                }
                else if article.category == "news" {
                    self.newsArray.append(article)
                }
                else if article.category == "roster" {
                    self.rosterArray.append(article)
                }
                else if article.category == "draft" {
                    self.draftArray.append(article)
                } else {
                    self.blogArray.append(article)
                }
            }
            self.newsArray.reverse()
            self.rosterArray.reverse()
            self.draftArray.reverse()

        }

    }

@IBAction func BlogPressed(_ sender: Any) {
        articleArray.removeAll()

        self.articleArray = self.blogArray
        tableView.reloadData()
    }

2 个答案:

答案 0 :(得分:0)

您应该在数据源更新后在回调中调用tableView.reloadData()。我想您的情况应该放在self.draftArray.reverse()之后。

答案 1 :(得分:0)

您可以使用异步调度队列,也许是可行的。在那之后,您将数据放在哪里。

DispatchQueue.main.async { self.tblHome.reloadData() }