gpt4 book ai didi

ios - didSelectRowAt indexPath : IndexPath - is always returning the previous selection

转载 作者:行者123 更新时间:2023-11-28 14:14:26 25 4
gpt4 key购买 nike

我有一个 UITableView,一个自定义单元格的自定义类和我的 ViewController swift:

private var model_firma = [Firme]()
var firme = Firme(IDFirma: 1, Denumire: "ZZZZZ", Reprezentant: "JohnDoe")
model_firma.append(firme);
firme = Firme(IDFirma: 2, Denumire: "YYYYYYY", Reprezentant: "JohnDoe")
model_firma.append(firme);

和:

public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
return model_firma.count
}

public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath) as! FirmeTableViewCell
let item = cell.labelDenumire
labelSelectedCompany.text = item?.text
}

项目显示正确。但是,在第一次点击表格 View 时,在任何项目上,什么都没有发生。在第二次点击 ||选择不同的项目时,将检索前一个项目。

我使用模型中的数据向 UITableView 添加行的函数:

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

let cell = tableView.dequeueReusableCell(withIdentifier: "cellIdentifier", for: indexPath) as! FirmeTableViewCell
let text = model_firma[indexPath.row]

cell.labelDenumire.textColor = UIColor(rgb: 0xffffff)
cell.labelDenumire.text = text.Denumire

看来我自己是搞不定的。

非常感谢!

最佳答案

从逻辑上讲,在 didSelectRowAt 中,我假设您应该直接从数据源 (model_firma) 中读取所需数据,而不是获取单元格并从中读取:

public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let currentModel = model_firma[indexPath.row]
labelSelectedCompany.text = currentModel.Denumire
}

边栏注释:

  • 在 Swift 中,我们通常遵循驼峰式命名约定:
    • modelFirma 而不是 model_firma
    • 变量名应以小写字母开头:denumire 而不是Denumire

代替:

private var model_firma = [Firme]()
var firme = Firme(IDFirma: 1, Denumire: "ZZZZZ", Reprezentant: "JohnDoe")
model_firma.append(firme);
firme = Firme(IDFirma: 2, Denumire: "YYYYYYY", Reprezentant: "JohnDoe")
model_firma.append(firme);

最好是这样:

private var firmes = [Firme(IDFirma: 1, Denumire: "ZZZZZ", Reprezentant: "JohnDoe"),
Firme(IDFirma: 2, Denumire: "YYYYYYY", Reprezentant: "JohnDoe")]

删除 ;

关于ios - didSelectRowAt indexPath : IndexPath - is always returning the previous selection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52259042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com