我有一个tableViewController,当单击一个单元格时,我想记录单元格的名称并以编程方式将其传递给新的QuestionViewController。我得到的问题是,当单击单元格时,我收到错误:
***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'Receiver()没有带标识符'segueToViewController'的segue''
-(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
这很好,但它没有达到“准备segue”NSLog。当我调试问题时,它在prepareForSegue
处崩溃答案 0 :(得分:0)
您能否确认故事板中是否存在segue?即使以编程方式触发,segue也必须存在于您的故事板as described here中。
如果segue确实存在,请检查其名称中的拼写错误。名称必须在故事板和代码中以相同的方式拼写。 (这一直是我的常见错误来源,似乎没有机制可以确保故事板标识符与源代码匹配。)
如果segue存在且拼写正确,那么this Stack Overflow thread指向其他解决方案以寻找更具异国情调的案例,例如具有多个故事板的项目。还尝试按照该线程中的建议进行干净构建。