无法识别单击单元格后的 tableView segue

Posted

技术标签:

【中文标题】无法识别单击单元格后的 tableView segue【英文标题】:tableView segue after clicking cell is not recognized 【发布时间】:2015-11-08 06:42:43 【问题描述】:

我有一个 tableViewController,当单击一个单元格时,我想记录单元格的名称并以编程方式将其传递给一个新的 QuestionViewController。我遇到的问题是单击单元格时出现错误:

*** 由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'Receiver () has no segue with identifier 'segueToViewController''

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    self.name = [self.listOfNames objectAtIndex:indexPath.row];
    NSLog(@"selected cell: %i, %@", (int)indexPath.row, self.listOfNames);
    [self performSegueWithIdentifier:@"segueToViewController" sender:self];



-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

    NSLog(@"prepare for segue: %@", segue.identifier);
    if ([[segue identifier] isEqualToString:@"segueToViewController"])

        QuestionViewController *QVC = segue.destinationViewController;
        QVC.currentResidentName = [[NSString alloc] initWithString:self.name];


知道如何使 segue 工作吗?我不确定为什么 prepareForSegue 无法识别 segue。

NSLog 打印:

 selected cell: 0, 123456789

这很好,但它没有进入“准备转场”NSLog。当我调试问题时,它会在 prepareForSegue 崩溃

【问题讨论】:

【参考方案1】:

你能确认你的故事板中存在转场吗?即使以编程方式触发,segue 也必须存在于您的故事板as described here。

如果 segue 确实存在,请检查其名称中的拼写错误。该名称在情节提要和代码中的拼写方式必须相同。 (这对我来说是一个常见的错误来源,似乎没有确保故事板标识符与源代码匹配的机制。)

如果 segue 存在并且拼写正确,则 this Stack Overflow thread 指向其他解决方案以解决更奇特的情况,例如具有多个故事板的项目。还可以尝试按照该线程中的建议进行干净的构建。

【讨论】:

以上是关于无法识别单击单元格后的 tableView segue的主要内容,如果未能解决你的问题,请参考以下文章

从 UITableView 插入/删除单元格后的 IndexPath 错误

在Swift中单击后修改tableview中的单元格内容

使用自我调整大小的单元格后,reloadData 不再起作用

单击指定单元格后,在搜索栏占位符中获取表格视图单元格文本值

在 tableView 中选择单元格后布局更改

重新排列表格视图单元格后如何更新核心数据记录