我有一个按钮和表视图,当我点击按钮时,将显示表视图并重新加载其数据,如下所示:
@IBAction func citybtn(_ sender: Any) {
if citydrop.isHidden == false{
citydrop.isHidden = true
}else {
let filtered_shifts = myShifts.filter{$0.regionName == regionbtn.titleLabel?.text}
for shift in filtered_shifts {
cities.append(shift.cityName)
citiesid.append(shift.idCity)
}
uniqueCity = Array(Set(cities))
uniqueCityid = Array(Set(citiesid))
print(uniqueCity)
citydrop.isHidden = !citydrop.isHidden
contdurdrop.isHidden=true
nationalitydrop.isHidden=true
regiondrop.isHidden=true
btn=2
citydrop.isHidden=false
item = uniqueCity
citydrop.reloadData()
}
}
当我点击城市按钮时,它将始终崩溃并显示此错误:
同时注意到我在uniqueCity中有值......
[ “达曼”]
我正在用另一个按钮做同样的事情,它的工作正常!
那么为什么会出现此错误的原因是什么?
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = DropDownViewCell()
if (tableView == self.regiondrop){
cell = regiondrop.dequeueReusableCell(withIdentifier: "dropdowncell") as! DropDownViewCell
cell.item.text=item[indexPath.row]
return cell
}else if (tableView == self.citydrop){
cell = citydrop.dequeueReusableCell(withIdentifier: "dropdowncell1") as! DropDownViewCell
cell.item.text=item[indexPath.row]
return cell
}else if (tableView == self.contdurdrop){
cell = contdurdrop.dequeueReusableCell(withIdentifier: "dropdowncell2") as! DropDownViewCell
cell.item.text=item[indexPath.row]
return cell
}else if (tableView == self.nationalitydrop){
cell = nationalitydrop.dequeueReusableCell(withIdentifier: "dropdowncell3") as! DropDownViewCell
cell.item.text=item[indexPath.row]
return cell
}
return cell
}
答案 0 :(得分:0)
如果您使用xib然后在加载中注册您的单元格,或者在tableview中遇到dropdowncell1
标识符问题。双重检查标识符。
答案 1 :(得分:0)
这是因为标识符,请按照以下步骤操作:
在单元格的resueidentifer属性中给出标识符名称
确保单元格已在tableview中注册。
对于单元格使用相同的标识符,正如我在您的代码中看到的那样,您使用的是不同的标识符但单元格相同,请为每种类型的单元格使其相同。