我有了这个tableView,当我点击一个单元格时,它会给我这个单元格的名称,然后我把它传递给下一个视图,但问题是我需要覆盖“DidSelectRowat”函数中的segue函数,我想这是不可能的,有什么建议吗?
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
clickedYear = years[indexPath.row]
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let ResumosVC: Resumos2ViewController = segue.destination as! Resumos2ViewController
ResumosVC.Title = clickedYear
}
两种解决方案:
>
重新将segue连接到单元(而不是控制器),并实现
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
guard let cell = sender as? UITableViewCell,
let indexPath = tableView.indexPath(for: cell) else { return }
let resumosVC = segue.destination as! Resumos2ViewController
resumosVC.Title = years[indexPath.row]
}
调用DIDSelect
中的PerformSegue
(用实际值替换标识符字符串)
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "MySegueIdentifier", sender: indexPath)
}
并将准备(用于
更改为
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
guard let indexPath = sender as? IndexPath else { return }
let resumosVC = segue.destination as! Resumos2ViewController
resumosVC.Title = years[indexPath.row]
}
在这两种情况下都不需要ClickedYear
。
注意:请遵守命名约定,以小写字母开头命名变量。