ios - 选择表格视图单元格时无法触发segue(一次)
问题描述
我正在制作一个待办事项列表应用程序并有两个视图控制器,我必须将所选行的索引路径从CategoryViewController
to 传递ItemsViewController
并触发 Segue...
这是我的类别视图控制器
但是当我单击其中一个单元格时,它只是被选中但没有触发 segue继承人如何 但是当我选择第一个单元格后选择另一个单元格时会触发segue ......这是我的代码
override func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "goToItems", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
print("sucess")
let destinationVC = segue.destination as! ToDoListViewControlorer
if let indexPath = tableView.indexPathForSelectedRow {
destinationVC.selectedCategory = categoriesArray[indexPath.row]
}
}
解决方案
首先,覆盖didSelectRowAt
方法,因为您要处理用户选择行的时刻,而不是取消选择。也作为sender
通过选定的项目
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "goToItems", sender: categoriesArray[indexPath.row])
}
然后prepare(for:sender:)
只是沮丧的发件人
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destinationVC = segue.destination as? ToDoListViewControlorer {
destinationVC.selectedCategory = sender as! Category
}
}
ps 命名您的控制器Controller
,而不是Controlorer
推荐阅读
- c - 在 C 中处理 SIGCHLD 时出现非法硬件指令
- javascript - 单击诸如 fullpage.js 之类的锚链接时快速滚动
- c# - .NET Core 2.0 授权过滤器 - 未按预期工作
- android - ImageView 适合宽度,从顶部开始
- java - 用户退出程序时如何设置 ScheduledExecutorService 结束?
- javascript - 如何删除子元素中的模糊属性?
- typescript - TypeScript:地图的键(对象)不起作用
- php - 如何将数组添加到会话中所有数组都在会话中的一个键下
- html - 如何创建元素旋转 45 度的可点击列表
- mongodb - 如何聚合我的文档中的所有现有字段