Ios 从UITableViewCell到ViewController的分段不工作

Ios 从UITableViewCell到ViewController的分段不工作,ios,swift,uitableview,segue,Ios,Swift,Uitableview,Segue,我在UITableViewCell和UIViewController之间设置了一个序列。我的理解是,如果我设置了一个从原型单元格到UIViewController的显示序列,当点击我的UITableView中的一个单元格时,UIViewController会显示出来,但我不会这样做。使其工作的唯一方法是覆盖tableViewdidSelectRowAtIndexPath,然后调用PerformsgueWithIdentifier 为了验证这一点,我创建了一个带有UITableViewContro

我在
UITableViewCell
UIViewController
之间设置了一个序列。我的理解是,如果我设置了一个从原型单元格到
UIViewController
的显示序列,当点击我的
UITableView
中的一个单元格时,
UIViewController
会显示出来,但我不会这样做。使其工作的唯一方法是覆盖tableView
didSelectRowAtIndexPath
,然后调用
PerformsgueWithIdentifier

为了验证这一点,我创建了一个带有
UITableViewController
UIViewController
的快速项目。当我在原型单元和UIViewController之间创建一个segue时,它的工作方式应该是这样的。所以我知道这是可能的,我只是不确定是什么导致了我实际项目中的问题

没有多少代码可以显示。我的原型单元格是一个来自xib文件的自定义单元格,但我也尝试给它一个
UITableViewCell
类,结果没有什么不同


有没有人遇到过这样一个案件,像这样的一段话应该管用,但却不行?如果是这样,您是如何修复的?

让我们澄清一些基本问题

  • performsguewithidentifier:sender:
    是UIViewController的一种方法,因此为了从单元格执行segue,您需要在单元格中声明VC的弱属性,如下所示
  • @属性(非原子,弱)UIViewController*segueController

    结束通过执行您的操作

    [self.segueController performSegueWithIdentifier:@"segue_id" sender:self];
    
  • 最常见的方法-使用
    didselectRowatineXpath
    有以下好处:您的segue逻辑属于控制器,而不是视图(因为uitableviewcell是uiview的子级)。因此,我建议您将此方法用于分段或处理视图层次结构

  • connect segue from TABLEVIEW如果您的单元是从xib文件实例化的,那么您没有在故事板中使用原型单元。然后,由于xib文件中没有分段,因此您根本没有与单元格链接的分段。所以,我想我在你的帖子中失去了一些东西。谢谢你的评论。这是关键。即使我将我的cell类更改回UITableViewCell,我仍然在注册nib。这使得我不得不使用performsguewithidentifier。我建议您也看看这个:因为您可以看到如何打开新的ViewController以及如何向其传递参数