我正在使用情节提要的表视图中的部分,在其中选择部分中的单元格将引导我到另一个屏幕。我已经做到了,但是我觉得我使用了太多的代码,必须看到一种更好的开发方式,我已经看到类似的出版物尝试这样做,here我找到了这个答案
部分和部分中的项目数量会改变吗?如果不是这样,则无需代码即可创建静态单元格并将每个单元的连接挂接到不同的目的地(全部在Interface Builder中完成)。
正是我的情况,我会对这种形式感兴趣。我有固定的数据,不会改变。现在,我尝试以可能的最佳方式开发此功能,而不是目前的方式。 我必须强调,我是敏捷开发的新手。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
switch indexPath.section {
case 0:
switch indexPath.row{
case 0:
self.performSegue(withIdentifier: "goToCreateAccountViewController", sender: nil)
break
case 1:
break
case 2:
break
default:
break
}
break
case 1:
switch indexPath.row{
case 0:
break
case 1:
break
case 2:
break
default:
break
}
break
case 2:
break
case 3:
break
default:
break
}
}
cellForRow:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell : UITableViewCell = UITableViewCell(style: UITableViewCell.CellStyle.subtitle, reuseIdentifier: "item_option")
cell.textLabel?.text = options[indexPath.section][indexPath.row]
cell.imageView?.image = UIImage(named: "icon-myprofile")
cell.textLabel?.font = cell.textLabel?.font.withSize(14)
return cell
}
答案 0 :(得分:0)
您可以将巨人switch
缩短为
switch (indexPath.section, indexPath.row) {
case (0,0):
self.performSegue(withIdentifier: "goToCreateAccountViewController", sender: nil)
default:
break
}
答案 1 :(得分:0)
答案 2 :(得分:0)
如果要处理switch
,请使用multiple cases
语句。
但是从代码中可以明显看出,您仅处理single condition
。在这种情况下,我看不到需要使用switch statement
。
您可以轻松地使用简单的if statement
来使它正常工作。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.section == 0 && indexPath.row == 0 {
self.performSegue(withIdentifier: "goToCreateAccountViewController", sender: nil)
}
}