在 swift uiTableView 中调用 reloadData() 后,旧项目剩余,新项目未显示

Posted

技术标签:

【中文标题】在 swift uiTableView 中调用 reloadData() 后,旧项目剩余,新项目未显示【英文标题】:after call reloadData() in swift uiTableView, old items remaining and new ones not shown 【发布时间】:2018-07-13 14:39:39 【问题描述】:

我在TabBar 中有一个TableView,它的数据是从服务器获取的。加载数据后,我调用reloadData(),所有项目都在第一时间显示。当用户更改TabBar 的选项卡并返回当前选项卡时,应更新TableView 的项目。但是当我第二次调用reloadData() 时,旧数据不会被删除,新数据不会显示出来。

我的代码是:

if response.result.isSuccess  // Response is success

    if let estateFileResponse: EstateFileResponse = response.result.value  // Response is type of EstateFileResponse

        // Dismiss loader
        ShowHUD.sharedInstance.dismiss()

        // Append estateFile items to items list
        if estateFileResponse.estateFileList.count > 0 

            self.items = estateFileResponse.estateFileList

            self.tableView.reloadData()
        
    

此代码仅第一次工作。

【问题讨论】:

调用 viewWillAppear 中的所有方法而不是 viewDidLoad 【参考方案1】:

尝试同步重新加载数据

DispatchQueue.main.async 
   self.tableView.reloadData()

【讨论】:

以上是关于在 swift uiTableView 中调用 reloadData() 后,旧项目剩余,新项目未显示的主要内容,如果未能解决你的问题,请参考以下文章

在 swift uiTableView 中调用 reloadData() 后,旧项目剩余,新项目未显示

Swift 3 错误“无法调用非函数类型 'UITableView!' 的值” [关闭]

iOS swift UITableView ReloadData 性能

UIView中的UITableView与swift

swift UITableView使用

Swift 用新数据更新 UITableView