我有一个包含静态内容的表视图,我试图访问所选行的标签文本,但由于某种原因它返回nil。可能导致什么呢?
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let currentCell = tableView.cellForRow(at: indexPath) as UITableViewCell?
let label = currentCell!.textLabel
if label != nil {
let text = label!.text
NSLog(text ?? "Label text is nil")
} else {
NSLog("Label is nil")
}
}
在我的例子中,我看到标签文字为零
答案 0 :(得分:0)
这是XY problem(链接),
您不应该将模型数据存储在单元格的视图中。单元格是视图对象。它用于显示信息和收集用户的输入。
您应该将数据存储在模型对象中。对于表视图,一个数组(或分段表视图的数组数组)是一个不错的选择。
使用indexPath从模型中查找所需的字符串,而不是尝试从单元格标签中获取文本。
答案 1 :(得分:0)
确保将属性检查器上的单元格样式设置为“自定义”以外的任何其他样式。 如果它是自定义的,则从您的代码中看起来您似乎没有定位它。