Это будет работать только на основе предположения, что как родительское табличное представление, так и дочернее семейное представление не используют несколько разделов с несколькими строками, и вам нужно только сохранить одно значение для каждого, чтобы указать, где находится элемент в каждом соответствующем Посмотреть.
Если я правильно понимаю, у вас есть представление коллекции для каждой ячейки табличного представления. Вы сохраняете выбор каждого представления коллекции, но вам также необходимо знать положение представления коллекции в родительской таблице? Для этого можно добавить свойство в свой класс UICollectionView
или использовать свойство tag
и установить его в соответствии с разделом, в котором он расположен в родительской таблице. Затем, когда вы сохраняете выбранное IndexPath
, вы можете установить section
в качестве свойства созданного вами представления коллекции (или tag
в примере), чтобы каждый выбранный indexPath.section
представлял табличное представление section
, и indexPath.row
представляет строку представления коллекции.
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//...
let collectionView = UICollectionView()
collectionView.tag = indexPath.section
//...
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
indexPath.section = collectionView.tag
let strData = itemFilter[indexPath.section].value[indexPath.item]
//...
}
По сути каждый выбранный вами путь индекса будет соответствовать следующему:
indexPath.section
= таблица секция вида
indexPath.row
= строка вида коллекции
IndexPath(row: 5, section: 9)
будет соответствовать:
- ячейка таблицы в IndexPath(row: 0, section: 9)
.
---- ячейка вида коллекции в IndexPath(row: 5, section: 0)
Редактировать: так вы можете использовать сохраненные пути индекса в текущем коде
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
//...
let tempIndexPath = IndexPath(row: indexPath.row, section: collectionView.tag)
if arrSelectedIndex.contains(tempIndexPath) {
//...
} else {
//...
}
//...
}