2011-10-12 128 views
0

我正在与多个UIViewController s一起工作。我只是添加了一个新的,当我点击新的按钮时,应用程序崩溃,出现以下错误。在第一掷添加视图控制器

2011-10-11 22:51:57.227 BG-Prep[9156:207] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<ResourcesViewController 0x4b28540> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key delegate.' 

*调用堆栈:

的代码是相同的(除了文件名)到正常工作的其他两页。这是什么告诉我?

- (IBAction)resourceButtonTapped:(id)sender; 
{ 
    NSLog(@"Tapped the resource button"); 

    ResourcesViewController *resourcesViewController = [[[ResourcesViewController alloc] 
     initWithNibName:@"ResourcesViewController" bundle:[NSBundle mainBundle]] autorelease]; 

    NSLog(@"receiver's type: %@", NSStringFromClass([resourcesViewController class])); 

    resourcesViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentModalViewController:resourcesViewController animated:YES]; 

} 

如果我取消了两行,我得到如下:

2011-10-12 14:38:51.533 BG-Prep[10070:207] Tapped the resource button 
2011-10-12 14:38:51.535 BG-Prep[10070:207] receiver's type: ResourcesViewController 

最后一行[self presentModalViewController:resourcesViewController animated:YES];是导致应用程序崩溃,但为什么呢?

+0

ResourcesViewController是UIViewController的子类吗? – titaniumdecoy

+0

是的,它是一个子类...我在上面的描述中添加了更多信息。 – padapa

回答

2

通常这个错误表明你没有在你的笔尖上设置视图插座。进入用户界面笔尖,右键单击“文件的所有者”。将圆圈拖到“查看”的右侧,放到笔尖的根视图上。这通常会解决你的问题。

如果文件的所有者设置正确,那么表明您的视图控制器定义中不存在在您的某个视图中指定的IBOutlet。右键单击每个视图(包括根视图)并检查以确保IBOutlet旁边没有黄色三角形警告。

+0

詹姆斯,感谢您的帮助......它结束了我有一个窗口,而不是一个视图,但它也没有连接。修正了这两个问题,我再次工作。 :) – padapa

0

因此,当您尝试以模态方式呈现它时,视图控制器会抛出异常。这是第一次访问控制器的视图,因此控制器将在该点加载笔尖。发生这种情况时,笔尖加载机制会尝试为视图控制器中的键delegate设置一个值,并且由于视图控制器显然没有delegate属性,您会崩溃。也许你有一个,但删除它,忘记修理你的笔尖?

+0

Caleb,感谢您对可能发生的事情的解释。 – padapa

相关问题