Как зарегистрировать отдельные ячейки XIB для нескольких табличных представлений? - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть две таблицы с двумя клетками xib. Как мне зарегистрировать вторую ячейку xib со второй таблицей?

Он продолжает вставлять ячейку с первого стола.

Это мой код:

let cellNib = UINib(nibName: "FirstTableViewCell", bundle: nil)
self.tableView.register(cellNib, forCellReuseIdentifier: "cell")

let cellNib2 = UINib(nibName: "SecondViewCell", bundle: nil)
self.secondTableView.register(cellNib2, forCellReuseIdentifier: "cell2")

Вот моя функция cellForRowAt:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {


if tableView == tableView {
 let cell = self.tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! FirstTableViewCell



    return cell
}

else  {
    let cell2 = self.secondTableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as! SecondViewCell

     return cell2
}

}

1 Ответ

0 голосов
/ 07 сентября 2018

В вашей функции cellForRowAt есть локальная переменная с именем tableView (посмотрите на заголовок функции, tableView - это имя первого параметра), поэтому проверка tableView == tableView всегда будет возвращать true , Вот почему вы всегда получите первую клетку.

Заменить эту строку на:

if tableView == self.tableView {}

Добавляя self, вы напрямую ссылаетесь на переменную класса tableView вместо локальной переменной. Надеюсь, это поможет.

...