我想在打开UISwitch
时添加/显示一个表格单元格。
默认情况下,此UISwitch是关闭的。
首先,我在UISwitch
类中定义了UITableViewCell
,因为该开关位于另一个单元格中。
@IBOutlet weak var listSwitch: UISwitch!
然后:
在控制器中:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.row == 0 {
let FirsteCell = tableView.dequeueReusableCell(withIdentifier: "cell1", for: indexPath) as! NewlistViewCell
return FirsteCell
} else if indexPath.row == 1 {
let secondCell = tableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as! NewlistViewCell
let switchCase = NewlistViewCell()
if switchCase.listSwitch.isOn {
return secondCell
} else {
return UITableViewCell()
}
}
return UITableViewCell()
}
但是我得到了这个错误:
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
我可以指导我问题出在哪里吗?非常感谢
答案 0 :(得分:0)
不要创建另一个类型为NEWlistViewCell的对象。您只需要使用已经制造的电池即可。通过使用以下代码,您可以消除此错误。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.row == 0 {
let FirsteCell = tableView.dequeueReusableCell(withIdentifier: "cell1", for: indexPath) as! NewlistViewCell
return FirsteCell
} else if indexPath.row == 1 {
let secondCell = tableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as! NewlistViewCell
if secondCell.listSwitch.isOn {
return secondCell
} else {
return UITableViewCell()
}
}
return UITableViewCell()
}