我在详细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()上没有更新所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)