как отправить данные с uitableviewcontroller на uitableviewcell - PullRequest
0 голосов
/ 20 сентября 2019

У меня следующая ситуация

TableViewController (ExploreViewController) имеет пользовательские ячейки - CategoryTableViewCell.Каждая ячейка имеет представление коллекции с UICollectionViewCells.

Я бы хотел, чтобы CategoryTableViewCell связывался с ExploreViewController при отображении ячеек представления коллекции, чтобы определить, какие данные необходимо отобразить.Данные зависят от строки пути индекса ячейки табличного представления и от индекса ячейки представления коллекции.

Как я могу сделать это с помощью делегатов?

1 Ответ

0 голосов
/ 20 сентября 2019

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

Если вы решили использовать шаблон делегата или что-то в этом роде:

Давайте назовем егоисточник данных вместо делегата.Разработайте протокол CategoryTableViewCellDataSource.Когда вы создаете CategoryTableViewCell, установите контроллер табличного представления в качестве источника данных.

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

...