Как передать обратный вызов из TableView в ячейку TableView? - PullRequest
0 голосов
/ 21 ноября 2019

У меня есть 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, который вызвал действие, чтобы я мог изменить видимость метки в этой ячейке. Как мне этого добиться?

1 Ответ

0 голосов
/ 21 ноября 2019

Вы можете изменить этот метод следующим образом:

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

вы получите ячейку, которую нужно обновить позже. вы можете сохранить как свойство (например) после этого вы можете обновить в методе:

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

}

через tableView.reloadData()

и внутри cellForRowAtIndexPath вы можете обновить специальную ячейку с помощью indexpath, который высохранены

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...