Я довольно новичок в программировании Swift и сейчас я реализую динамическое табличное представление в ячейке статического табличного представления. Я знаю, что уже есть множество решений для stackoverflow, но я понял, что большинство из них находятся в Obj-C, но я пока не очень знаком с ним.
По сути, у меня есть TableView, который установлен как динамический в одной из ячеек статического табличного представления, которая является частью основного контроллера табличного представления. Проблема, с которой я столкнулся сейчас, заключается в том, что, похоже, нет способа реализовать функции источника данных, не объявив их для статического табличного представления. Я объявил @IBOutlet
для динамической таблицы (в этом сценарии назовем ее dynamicTableView
).
Мне удалось заставить override func numberOfSections(in tableView: UITableView)
работать, вернув 1
, если tableView
не dynamicTableView
, как в следующем коде:
override func numberOfSections(in tableView: UITableView) -> Int {
if tableView == dynamicTableView {
return data.count
}
else {
return 1
}
}
Однако проблема, с которой я сейчас сталкиваюсь, заключается в реализации override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
. Я понятия не имею, что будет возвращено, если параметр tableView
не dynamicTableView
, но для статического табличного представления.
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if tableView == dynamicTableView {
let cell = tableView.dequeueReusableCell(withIdentifier: "dynamic", for: indexPath) as! dynamicTableViewCell
cell.update(data[indexPath.row]) // A helper function declared in the dynamicTableViewCell.swift
return cell
}
else {
// What to return here?
}
}
Спасибо!
Редактировать: Я имел в виду, что у меня не может быть cellForRowAt
функция источника данных, которая не влияет на мое статическое табличное представление.