我几个小时都在努力,没有任何效果。我试图在两个视图控制器之间进行切换,从一个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热门地点[512:f803] *由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'Receiver(PlacesTableViewController:0x6887ff0)没有带标识符的segue'segue1 “” * 第一次抛出调用堆栈: (0x13c0052 0x1551d0a 0xde24b 0x3efd 0xa771d 0xa7952 0x92f86d 0x1394966 0x1394407 0x12f77c0 0x12f6db4 0x12f6ccb 0x12a9879 0x12a993e 0x17a9b 0x2778 0x26d5) 终止调用抛出异常
答案 0 :(得分:50)
我能够通过在Xcode的“Product”菜单下运行“clean”来修复它,并重置模拟器中的内容和设置。
答案 1 :(得分:6)
我有同样的问题。在我的初始值设定项- (id)initWithCoder:(NSCoder *)aDecoder
中,当我完成self = [super init];
时,我正在执行self = [super initWithCoder:aDecoder];
。当我修复这一切时,一切都按预期工作。
答案 2 :(得分:4)
我遇到了同样的问题并且花了好几个小时才挣扎。 Stackmonster的答案解决了我的问题(重命名故事板),但我不明白为什么它解决了这个问题。
我发现当我在故事板上更改了一个项目(添加了标签或更改了背景颜色)时,它没有反映在模拟器中 - 我没有使用我在xcode中可以看到的故事板,而是旧版本的故事板。
我必须在项目导航器中重命名故事板,并在info.plist
(在支持文件中)重命名它,我的标签出现了,应用了背景颜色,并且segue工作了。
我不知道为什么故事板的更改没有生效,但它给我带来了大量的时间。我在博客上看到很多开发者都有同样的问题。
答案 3 :(得分:3)
答案 4 :(得分:0)
在Interface Builder中,您需要将segue标识符设置为segue1
,它是连接到视图控制器的segue。
答案 5 :(得分:0)
我尝试了列出的所有内容并且没有运气。有用的是为新视图创建一个新的segue,然后使用它,运行它,然后创建一个回到旧视图的segue。
答案 6 :(得分:0)
解决了这个问题。终于意识到当我更换故事板上的视图控制器时,我丢失了我的标识符。我通过单击文档大纲(故事板的侧边栏)中的展开segue重新添加它,然后在属性检查器中为其添加标识符。
如果没有别的办法,至少可以解开细分,你可以打电话
[self dismissViewControllerAnimated:YES completion:nil];
答案 7 :(得分:0)
我遇到了与将新VC作为另一个视图控制器的子类时相同的问题。它应该是UIViewController或UITableViewController的子类。检查头文件是否正在导入UIKIT。