2011-10-12 126 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

相關問題