вы можете сделать свой источник данных следующим образом:
class TableViewDataSource {
var outerTVDatasource: [OuterTableViewDataSource]?
}
class OuterTableViewDataSource {
var insideTVDatasource: [InsideTableViewDataSource]?
}
class InsideTableViewDataSource {
}
и в главном viewcontroller, где у вас есть родительский просмотр таблицы, возвращайте numberOfRows как
class MainViewController: UIVIewController {
var outerTableView: UITableView?
override func viewDidLoad() {
super.viewDidLoad()
outerTableView.delegate = self
outerTableView.dataSource = self
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return tableViewDataSourceObject.outerTVDatasource.count ?? 0
}
//PseudoCode
func cellForRowAt() {
let cell = dequeue as? OuterTableViewCell
cell.dataSource = tableViewDataSourceObject.outerTVDatasource
return cell
}
}
, чтобы ваш OuterTableViewCell обрабатывал внутренний просмотр таблицы
class OuterTableViewCell: UITableViewCell {
var innerTableView: UITableView?
var dataSource: OuterTableViewDataSource?
//psuedo code
awakeFromNib() {
innerTableView.delegate = self
innerTableView.datasource = self
}
numberOfrow() {
return dataSource. insideTVDatasource.count
}
cellforrow() {
let cell = dequeue as? InnerTableViewCell
cell.dataSource = dataSource. insideTVDatasource
return cell
}
class InnerTableViewCell: UITableViewCell {
var dataSource: InsideTableViewDataSource
}