reloadData() 不会更新父 TableView

Posted

技术标签:

【中文标题】reloadData() 不会更新父 TableView【英文标题】:reloadData() doesn't update parent TableView 【发布时间】:2016-11-21 19:02:50 【问题描述】:

我有一个自定义的TableViewController,称为LibraryTableViewController

class LibraryTableViewController: UITableViewController 

包含用于渲染的数据。

变量项目:[项目] = []

然后,我有另一个继承 LibraryTableViewController 作为委托的 Firebase 类。 (我不确定这是否是正确的描述。)

class FirebaseDB : LibraryTableViewController 

然后,我有一个 FirebaseDB 的全局实例

让数据库 = FirebaseDB()

我有一个观察者正在监听 Firebase 类中数据库的变化,我正在更新

self.items

然后,尝试使用刷新LibraryTableViewController

self.tableView.reloadData()

我对当前问题的理解可能是错误的。我认为我正在更新的 items 数组与我在应用程序上看到的 tableView 实例不同。它正在更新未在应用程序上呈现的 FirebaseDB 实例数据库的项目。如何确保正在更新正确的实例?

【问题讨论】:

确保你更新了你的“items”数组并且你的 self.tableView.reloadData 函数确实发生了。您可以在 reloadData 函数旁边放置类似 print("Ok") 的内容。 它确实更新了“items”数组。 LibraryTableViewController 实际上有一个 items didSet 打印出分配的内容。它会打印出从 Firebase 分配的内容以及视图中的内容。基本上有两个“项目”;我只想更新 LibraryTableViewController 中的一个。 【参考方案1】:

很多代码丢失 但你可以检查:

    线程必须是主线程,也许你从后台调用 检查项目是否已更改 给你的号码 check is the tableview not nil 检查您的委托,也许它也为零

但最好给我们更多代码)

【讨论】:

以上是关于reloadData() 不会更新父 TableView的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView reloadData() 不会更新集合视图中的单元格

v-for 组件不会实时更新

UITableView reloadSections/reloadData:标题视图变为空白

使用 FRC Swift 3 更改 CoreData 后 TableView 不更新(reloadData)

UITableView, reloadData 重新加载单元格但不调整表格大小

iOS:tableView.reloadData() 不能快速工作