首页 > 解决方案 > 选择表格视图单元格时无法触发segue(一次)

问题描述

我正在制作一个待办事项列表应用程序并有两个视图控制器,我必须将所选行的索引路径从CategoryViewControllerto 传递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]

    }

}

标签: iosswift

解决方案


首先,覆盖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


推荐阅读