无法访问我的单元格内容中的变量
Posted
技术标签:
【中文标题】无法访问我的单元格内容中的变量【英文标题】:Can't access to variable in my cell content 【发布时间】:2020-01-08 23:07:09 【问题描述】:我希望在自定义单元格中的 awakeFromNib 函数中获取变量内容。
实际上,我是这样传递数据的:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "question_cell", for: indexPath) as! QuestionsCell
cell.answers = ["Answer 1", "Answer 2"]
return cell
在我的 QuestionCell 文件中,我的变量声明如下:
var answers = [String]()
当我想打印我的答案变量时,我在输出控制台中有一个空数组[]
override func awakeFromNib()
super.awakeFromNib()
print("HELLOOOOOOOOOOOO !!!!!!!!!!!!")
print(answers)
你能帮我解决这个问题吗? 谢谢
【问题讨论】:
cellForRowAt
在绘制单元格时被调用。 awakeFromNib
在从情节提要中解码 viewController 时被调用。 awakeFromNib
首先发生。它不会再发生了。所以此时的答案将是nil
。你真正的问题是awakeFromNib
什么时候被调用?我已经为你链接了一个类似的问题
这能回答你的问题吗? When does awakeFromNib get called?
【参考方案1】:
awakeFromNib()
将在调用 cellForRowAt
中的行 cell.answers = ["Answer 1", "Answer 2"]
之前调用。
要响应对答案的更改,您可以对您的变量定义执行属性观察者didSet
。
只需将var answers = [String]()
更改为:
var answers = [String]()
didSet
print(answers)
【讨论】:
另外,awakeFromNib
仅在创建单元格时调用,而不是在重用时调用,因此即使在该函数之前设置了属性,它也只会被调用一次
感谢您的帮助。我已经这样做了,但我忘记为我的 tableView 制作一个 ReloadData 所以内容没有加载。感谢您的帮助?以上是关于无法访问我的单元格内容中的变量的主要内容,如果未能解决你的问题,请参考以下文章
Excel 2010 将单元格内容中的科学记数法方程转换为十进制表示
从单元格内的 ScrollView 访问 UICollectionViewCell 的索引
单击表格单元格内的按钮时无法更新状态,React Ant Design