【发布时间】:2012-08-06 03:13:48
【问题描述】:
我已经尝试了好几个小时,但没有任何效果。我试图在两个视图控制器之间进行切换,从一个 tableViewController 到另一个 tableViewController。 segue 连接到顶层视图,而不是 tableviewcell。 Xcode 中设置的标识符与代码中使用的标识符相同(复制和粘贴)。昨晚运行良好,但现在我似乎无法让它在不崩溃的情况下继续运行。
这里是调用segue的方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.photoList = [FlickrFetcher photosInPlace:[self.topPlacesList objectAtIndex:indexPath.row] maxResults:50];
NSLog(@"photolist %@", self.photoList);
NSLog(@"here");
[self performSegueWithIdentifier:@"segue1" sender:self];
NSLog(@"here");
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"segue1"])
{
PhotosTableViewController *photosTVC = segue.destinationViewController;
photosTVC.photoList = self.photoList;
}
}
这是错误报告
2012-08-08 15:28:39.093 Top Places[512:f803] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“接收者(PlacesTableViewController:0x6887ff0)没有标识符为“segue1”的segue '' * 首先抛出调用栈: (0x13C0052 0x1551D0A 0xDE24B 0x3EFD 0xA771D 0x7952 0x92F86D 0x1394966 0x1394966 0x1394966 0x1394966 0x1394407 0x1394407 0x12f772407 0x12f77c0 0x12f6db4 0x12f6ccb 0x12a9879 0x12a993e 0x17a9b 0x11778 0x26d5) 终止称为抛出异常
【问题讨论】:
-
嘿!我修好了它! 1. 确保在 Xcode 中选择了正确的故事板(如果您重命名故事板,请在项目摘要中更改它)。然后删除模拟器上的应用并重启
-
删除应用程序是一个解决方案! Tnx!
-
在某些情况下,单独删除是行不通的。您将需要再次清理和构建应用程序。
-
另外:检查您是否本地化了情节提要或搞砸了。我有两个版本(一个在 en.lproj/ 中,另一个在 es.lproj/ 中),并且正在使用的版本 (en) 与我正在修改的版本 (es) 不同。我刚刚从项目中删除,删除了未使用的项目并添加了“好”的项目。
-
哇,真是个错误!在更改 segue 的位置后,我也从模拟器中删除了该应用程序,它现在可以工作了。
标签: objective-c uiviewcontroller segue identifier uistoryboardsegue