我有一个表视图,该表视图在加载时初始化为三行。稍后,我要提取单元格数据(从标签中)并在用户选择特定单元格时使用它。
即使初始化工作正常并且我可以看到所有显示的数据,但didSelectRowAt方法中的dequeueReusableCell返回的空单元格也没有数据。
出什么问题了?
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
}
即使标题的数据显示在显示屏上,上面的标题变量也将为空。
答案 0 :(得分:1)
替换
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")
}
但是## better ##将使用单击的索引访问数据源数组
let item = arr[indexPath.row]