, чтобы получить правильный внутренний tableView,
Во-первых, , вы должны записать в индексную ячейку внешнего tableView, в какой ячейке находится внутренний tableView.
Так что вы должнызапишите две indexPathes
var selectionRowInfo: (lastOutsideIP: IndexPath?, lastInnerIP: IndexPath?)
Во-вторых , вы получите правильный tableView через outsideTableView.
если внутренняя таблица видна, высправлюсь немедленно. через outTableView.indexPathsForVisibleRows
остальное условие , вам не нужно справляться с этим. Механизм повторного использования tableView обновит свое состояние.
// pseudo code.
if let lastOut = lastOutsideIP, let visibleRows = outTableView.indexPathsForVisibleRows, visibleRows.contains(lastOut){
let cell = tableView.cellForRow(at: lastOut) as! YourCell
// get the correct inner tableView via the cell
}
Поскольку внутренние tableViews не связаны друг с другом. Выберите ячейку таблицы один, это не повлияет на выбор ячейки таблицы 2.
Таким образом, вы должны создать соединение вручную.
Используйте свойство для хранения состояния var lastIndexPath: IndexPath?
,
, затем каждый раз выбирайте indexPath,
// pseudo code.
if let last = lastIndexPath{
tableView.deselectRow(at: last, animated: true)
}
Обратите внимание, что вы должны найти правильный внутренний tableView, который имеет lastIndexPath