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() 不会更新集合视图中的单元格
UITableView reloadSections/reloadData:标题视图变为空白
使用 FRC Swift 3 更改 CoreData 后 TableView 不更新(reloadData)