ios – Swift 3 tableView在reloadData()上没有更新

ios – Swift 3 tableView在reloadData()上没有更新,第1张

概述我正在构建一个主细节应用程序.我有一个部分视图控制器(VC),它是主VC的子代.单击VC部分中的行会显示用户完成所需信息的不同详细信息VC.一旦详细VC中的信息完成,我希望在VC行的相关部分中显示复选标记. FYI selectedProject是核心数据对象. 我在详细VC viewWillDisappear中调用通知来刷新VC部分. override func tableView(_ tabl 我正在构建一个主细节应用程序.我有一个部分视图控制器(VC),它是主VC的子代.单击VC部分中的行会显示用户完成所需信息的不同详细信息VC.一旦详细VC中的信息完成,我希望在VC行的相关部分中显示复选标记. FYI selectedProject是核心数据对象.

我在详细VC vIEwWilldisappear中调用通知来刷新VC部分.

overrIDe func tableVIEw(_ tableVIEw: UItableVIEw,cellForRowAt indexPath: IndexPath) -> UItableVIEwCell {    let cell = tableVIEw.dequeueReusableCell(withIDentifIEr: "Cell",for: indexPath)    let detailCase: String = selectedProject!.section![indexPath.row]    configureCell(cell,withSectionname: detailCase)    print("location complete is \(selectedProject!.completeLocation)")    print("electricity complete is \(selectedProject!.completeElectricity)"    print(cell.textLabel!.text!)    print(cell.accessoryType.rawValue)    return cell}func configureCell(_ cell: UItableVIEwCell,withSectionname sectionname: String) {        switch sectionname {        case "Project Details" :            cell.accessoryType = .checkmark        case "Location" :            if selectedProject?.completeLocation == true {                cell.accessoryType = .checkmark            }        case "Electricity Use" :            if selectedProject?.completeElectricity == true {                cell.accessoryType = .checkmark            }        default :            cell.accessoryType = .none        }        cell.textLabel!.text = sectionname}func refreshtable(notification: Notification) -> VoID {    print("Notification ran")    self.tableVIEw.reloadData()}

安慰:

通知跑了

位置完整是真的

电力完成是真的

项目细节

3

位置完整是真的

电力完成是真的

地点

3

位置完整是真的

电力完成是真的

电力使用

3

3’s = .checkmark

因此看起来cellForRowAt确切地知道它应该做什么但是表格不容易显示复选标记.相反,您必须单击返回主VC然后转发到VC部分才能显示复选标记,或者您必须单击VC部分中的不同行,并且随机显示复选标记.

我试过在dispatchqueue.main.async中调用reloadData没有运气.我尝试再次在进程中的不同点调用reloadData而没有成功.我已经尝试调用tableVIEw.beginUpdates / .endUpdates和reloadSectionData,再次没有成功获得要显示的复选标记.

如果我以编程方式连续提示VC vIEwWildisappear和vIEwWillAppear部分,则一旦选择了VC部分中的不同行,就会出现复选标记.它“似乎”像reloadData()没有提示完全重载tableVIEw.

FYI附件项目在故事板中设置为.none.

解决方法 需要在主队列上调用UI更新.试试这个:

dispatchQueue.main.async {    self.tableVIEw.reloadData()}
总结

以上是内存溢出为你收集整理的ios – Swift 3 tableView在reloadData()上没有更新全部内容,希望文章能够帮你解决ios – Swift 3 tableView在reloadData()上没有更新所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1001760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存