ios - 如何将 TableView 的回调传递给 TableView Cell?
问题描述
我有一个tableview
。在每个单元格中tableview
,都有一个上传按钮。单击该按钮时,我使用协议委托机制告诉 TableViewVC 我需要显示文件选择器选项。我不明白的是,当为特定单元格选择特定文件时,如何将回调从 TableView 传递到 TableView 单元格,以便我可以更改该单元格中标签的可见性。
这是单击单元格中的按钮时的代码
protocol FileUploadDelegate {
func uploadFile(documentId: Int,position: Int)
}
@IBAction func uploadDocumentClicked(_ sender: Any) {
delegate?.uploadFile(documentId: documentId,position: position)
}
在我的TableViewVC
我已经实现了协议并为文件选择器编写了所有代码
现在在下面的方法
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
}
我需要将回调从 tableView 传递到触发操作的确切 tableCell,以便我可以更改该单元格中标签的可见性。我怎样才能做到这一点?
解决方案
您可以像这样修改此方法:
protocol FileUploadDelegate {
func uploadFile(documentId: Int,position: Int, cellIndexPath: IndexPath)
}
你得到了以后需要更新的单元格。您可以在此之后保存为属性(例如),您可以在方法中更新:
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
}
通过tableView.reloadData()
在里面cellForRowAtIndexPath
你可以用你保存的 indexpath 更新特殊单元格
推荐阅读
- javascript - 如何在 javascript 中使用包含承诺的数组?
- python - 如何正确地将组权限分配给 Django CMS 中的特定页面?
- neo4j - apoc 触发器使用 apoc.es.put 将新创建的 neo4j 节点发送到 elasticsearch
- c - 数组,isdigit 函数,while 循环
- java - 在 Spring MVC 中找不到类 @ 无法捕获 @Controller
- vue.js - Vuejs动态添加类
- c# - ASP.NET Core MVC - 在运行时绑定到模型
- java - 加权投票通常应该提高 KNN 分类器的准确性吗?
- python-3.x - 如何合并标记相同的两列内容?
- python - 将“复杂数组”拆分为“实数”和“虚数”数组的快捷方式