我有一个应用程序,它在第一次启动时导入一个 XML 文件来创建一个表。这在 iOS 9 中工作得非常好。在 iOS 10 中,它仍然正确导入所有数据,并正确执行提取,但表格不会显示项目,直到我强制退出应用程序并再次打开它。相反,它只显示 xml 文件中的第一项。当我单击该项目时,它实际上将我带到了 298 个项目的有序列表中的第一个项目(这是一个不同的项目)。
视频显示问题的链接:reloading table issues
订单:
- 1) 应用在首次启动时打开,提示用户“导入数据”。解析器
用于导入XML并成功运行XML(我可以打印
每个项目的日志)。
- 2) App 保存 importContext 并调用
tableView.reloadData
- 3) 此时,数据应该在表格中。
导航标题包括一个正确的计数(298 项)。
但是,表中只有一项,即 XML 中的第一项
文件。
- 4) 如果我点击那个项目,它会带我去
298 项列表中的第一项(不是实际在
table )。
- 5) 有趣的是,如果我执行搜索,则 1 的名称
项目没有改变,但如果我点击它,它会将我带到我的项目
搜索。如果我搜索不同的项目并单击 1
表中的项目,它将我带到新项目(但仍然没有
更改现有项目的文本) - 所以所有 298 个项目都在那里,
只是没有显示在表格中。
我试过打电话
self.viewDidLoad
和
self.tableView.reloadData()
和
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
}
并在解析完成后使用 NSNotificationCenter 调用上述所有三个函数
NSNotificationCenter.defaultCenter().postNotificationName("performFetch", object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.test), name: "performFetch", object: nil)
但实际上并没有重置 tableView 中的一项(恰好是 xml 文件中的第一项。同样,所有数据都在那里,只是不可见。
如果我强制退出应用程序并重新打开它,所有数据都在那里并且可见并且工作正常。在 iOS 10 中是否有不同/新的方法来强制刷新 tableview?同样,此功能在 ios 9 中运行良好,没有更改代码,但在 ios 10 中它失败了。我还没有升级到 Swift 3.0,因为它会很痛苦。
Best Answer-推荐答案 strong>
您在 cellForRowAtIndexPath: 方法中进行单元格配置?我有一个类似的问题,我解决了它移动 willDisplayCell 中的代码:。
关于ios - 初始导入后,iOS 10 中的 UITableview 不再刷新,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/39553683/
|