dequeueReusableCell возвращает пустую ячейку после инициализации таблицы - PullRequest
0 голосов
/ 28 января 2019

У меня есть табличное представление, которое при загрузке инициализируется тремя строками.Позже я хочу извлечь данные ячейки (из меток) и использовать их, когда эта конкретная ячейка выбрана пользователем.

Даже если инициализация работает хорошо, и я вижу все отображаемые данные, dequeueReusableCell вМетоды didSelectRowAt возвращают пустые ячейки без данных.

В чем проблема?

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    guard let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? ArticleTableViewCell else {
        fatalError("Whoopse, dequeueing the cell failed")
    }
    let title = cell.articleLabel.text
    // Do other stuff

}

Переменная title выше будет пустой, даже если ее данные отображаются на дисплее.

1 Ответ

0 голосов
/ 28 января 2019

Заменить

guard let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? ArticleTableViewCell else {
    fatalError("Whoopse, dequeueing the cell failed")
}

на ( не рекомендуется )

guard let cell = tableView.cellForRow(at:indexPath) as? ArticleTableViewCell else {
    fatalError("Whoopse, dequeueing the cell failed")
}

, но лучше ## ## для доступа к массиву источника данных с индексом, по которому щелкнули

let item = arr[indexPath.row]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...