Я создал tableView с ячейками-прототипами. Внутри каждой из этих ячеек-прототипов находится другой табличный вид с разными ячейками-прототипами. Я все это хорошо связал, но у меня возникли проблемы с изменением внутренних прототипных ячеек. Вот почему. Вот соответствующий код:
class ViewController: UIViewController, AVAudioRecorderDelegate, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "outerCell") as! outerCell
//would obviously make some modification to cell here, like cell.title = "test" or something
let cell2 = cell.commentTableView.dequeueReusableCell(withIdentifier: "innerCell") as! innerCell
cell2.commentText.text = "sus"
//NEED TO DIFFERENTIATE HERE ON HOW TO KNOW WHICH CELL TO RETURN
//e.g. NEED TO RETURN either cell1 or cell2, depending on the tableView
}
Мой код для externalCell выглядит следующим образом:
import UIKit
class outerCell: UITableViewCell, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var commentTableView: UITableView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
commentTableView.delegate = self
commentTableView.dataSource = self
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "innerCell", for: indexPath) as! commentCell
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
}
Видите, основная проблема в том, что оба этих табличных представления работают нормально и все, но, в первом фрагменте кода, если я просто сделаю что-то вроде
if tableView == self.tableView{
return cell }
else ...
, это не будет работать, поскольку tableView всегда выглядит как self.tableView.
Как я могу изменить свой код, чтобы я мог влиять на текст, отображаемый во внутренней ячейке и во внешней ячейке, в одном и том же блоке кода?
Кроме того, обратите внимание, я знаю, что на основании приведенного здесь примера нет необходимости в этих вложенных клетках. Я просто упростил код, чтобы сосредоточиться на том, что важно - в моем реальном коде много чего происходит как во внутренней, так и во внешней ячейке.
Спасибо, любая помощь будет принята.