首页 > 解决方案 > 如何将 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,以便我可以更改该单元格中标签的可见性。我怎样才能做到这一点?

标签: iosswiftuitableview

解决方案


您可以像这样修改此方法:

protocol FileUploadDelegate {
    func uploadFile(documentId: Int,position: Int, cellIndexPath: IndexPath)
}

你得到了以后需要更新的单元格。您可以在此之后保存为属性(例如),您可以在方法中更新:

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {

}

通过tableView.reloadData()

在里面cellForRowAtIndexPath你可以用你保存的 indexpath 更新特殊单元格


推荐阅读