无法识别单击单元格后的 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 错误