我有一个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
}项目显示正确。但是,在第一次单击表视图时,任何项目都不会发生任何事情。在另一项上的第二次单击\选择时,将检索前一个项。
使用来自模型的数据向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好像我自己想不出来。
非常感谢!
发布于 2018-09-10 13:43:16
从逻辑上讲,在didSelectRowAt中,我假设您应该直接从数据源(model_firma)读取所需的数据,而不是从它读取单元格:
public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let currentModel = model_firma[indexPath.row]
labelSelectedCompany.text = currentModel.Denumire
}边栏注释:
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")]删除;。
https://stackoverflow.com/questions/52259042
复制相似问题