• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 初始导入后,iOS 10 中的 UITableview 不再刷新

[复制链接]
菜鸟教程小白 发表于 2022-12-11 17:32:22 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个应用程序,它在第一次启动时导入一个 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-推荐答案


您在 cellForRowAtIndexPath: 方法中进行单元格配置?我有一个类似的问题,我解决了它移动 willDisplayCell 中的代码:。

关于ios - 初始导入后,iOS 10 中的 UITableview 不再刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39553683/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap