2013-06-23 61 views
1

終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因: '接收器()具有識別符 'MySegue''NSInvalidArgumentException '的,原因是:' 接收器(<ViewController中:>)具有標識符沒有賽格瑞「MySegue

沒有SEGUE
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
UIViewController *viewController; 
switch (indexPath.row) { 
    case AUDIO: 

     [self performSegueWithIdentifier:@"MySegue" sender:self]; 
     break; 
    case PDF: 
     viewController = [[[PDFExampleViewController alloc] init]autorelease]; 

     break; 
    case PROCEDURAL: 
     viewController = [[[ProceduralExampleViewController alloc] init] autorelease]; 
     break; 
    default: 
     viewController = [[[UIViewController alloc] init] autorelease]; 
} 
[self.navigationController pushViewController:viewController animated:YES]; 
    } 

當我按下tableviewcell那麼它應該顯示的viewController MySegue但它給出了終止應用程序由於未捕獲的異常「NSInvalidArgumentException」,原因的錯誤消息:「接收器()具有標識符沒有賽格瑞‘MySegue’」。

爲什麼它在storyboardsegue標識符存在時發生錯誤。

感謝您的幫助。

+0

您確定此視圖控制器是從故事板加載的嗎?嘗試將'NSLog(@「my storyboard =%@」,self.storyboard);'放在方法的頂部。它是否記錄故事板,或者是否記錄爲空? –

回答

3

有幾件事情,你可以嘗試,使這項工作:

1)嘗試重命名的故事板,並確保設置主故事板的項目設置,並在Info.plist文件(主要是「主故事板基礎文件名')

2)嘗試做一個乾淨的產品(產品 - >清潔)

3)嘗試從模擬器刪除應用程序並再次運行它(如果以後你做這可能是工作做了第二點)

4)如果你的項目有不同地區的本地化和多個故事板,請確保故事板相同

5)Segue標識符區分大小寫。確保你輸入了確切的標識符(通常我只是從屬性檢查器中複製它並將其粘貼到我的代碼中,使我感覺更安全)

6)這看起來很明顯 - 但確保100%確實存在!我們有時會很累:)

希望這會有所幫助。

+0

如果我有兩個故事板,該怎麼辦? – user1120133

+0

一個用於iPad和一個用於iPhone,或兩個本地化故事板? – nemesis

+0

如果同時使用xib和storyboard – user1120133

相關問題