Swift tableviewcell内的Performsegue不工作

Swift tableviewcell内的Performsegue不工作,swift,uitableview,uiviewcontroller,segue,swift5,Swift,Uitableview,Uiviewcontroller,Segue,Swift5,我的视图控制器中有一个tableview,当我单击自定义tableview单元格时,执行推送序列时遇到问题。当我的tableview位于视图控制器内时,我是否必须执行一些独特的操作?代码如下 extension MyPersonalViewController: UITableViewDelegate, UITableViewDataSource { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: Index

我的视图控制器中有一个tableview,当我单击自定义tableview单元格时,执行推送序列时遇到问题。当我的tableview位于视图控制器内时,我是否必须执行一些独特的操作?代码如下

extension MyPersonalViewController: UITableViewDelegate, UITableViewDataSource {

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    performSegue(withIdentifier: "showGuest", sender: self)
    tableView.deselectRow(at: indexPath, animated: true)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "showGuest" {
        if let indexPath = tableView.indexPathForSelectedRow {
            let guestVC = segue.destination as! GuestViewController
            guestVC.navigationItem.title = "Project"  
        }
    }
}

在故事板中,您应该能够通过按住control键,然后单击单元格,然后拖动到目标视图控制器来创建序列

在您的
didSelectRowAt
方法中,您不需要做任何事情。我的意思是你不需要调用
performsgue
。所有这一切都将发生在引擎盖下感谢你在故事板中定义的segue

prepare
方法中,您需要执行以下操作:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    guard segue.identifier == "showGuest" else { return }
    guard let cell = sender as? UITableViewCell else { return }
    guard let indexPath = tableView.indexPath(for: cell) else { return }
    guard let dest = segue.destination as? GuestViewController else { return }
    dest.data = data[indexPath.row]
}

将表格单元格所在的视图嵌入UINavgationController

实例化您的视图

 let guestVC = segue.destination as! GuestViewController
 guestVC.navigationItem.title = "Project"  

 self?.navigationController?.pushViewController(guestVC!, animated: true)

对不起,那是个打字错误。它显示showGuest无处不在。“不工作”意味着它没有推进到下一个视图?您确定标识符是“showGuest”吗?
 let guestVC = segue.destination as! GuestViewController
 guestVC.navigationItem.title = "Project"  

 self?.navigationController?.pushViewController(guestVC!, animated: true)