2012-08-01 123 views
1

我是新來的編程目標C,所以我有一種感覺,這只是我正在做或未做的事情真的很愚蠢。查看導航問題'NSInternalInconsistencyException',原因:'無法在包中加載NIB

我有一個iPhone應用程序,並試圖從一個視圖導航到另一個視圖。我連接了一個segue,當我打電話時,像這樣:

[self performSegueWithIdentifier:@"ShowPolicyInformation" sender:sender]; 

它工作得很好。但是現在我想給我的新觀點傳遞一個價值,並且從我所能告訴的我不能用一個賽格來做到這一點。所以我設置一些關於它的性質,我試圖更手動導航到它:

PolicyInfoViewController *pol =[[PolicyInfoViewController alloc] initWithNibName:@"PolicyViewController" bundle:nil]; 
pol.PropertyOne=txtOne.text; 
pol.strPropertyTwo=txtTwo.text; 
[[self navigationController] pushViewController:pol animated:YES]; 

當我上面的代碼替換performSeque代碼,它建立罰款,但是當我運行它,我得到這個錯誤: 終止應用程序由於未捕獲的異常「NSInternalInconsistencyException」,理由是:「不能在包中加載NIB:‘一個NSBundle(加載)’名爲‘MainMobileViewController’」

當我搜索幫助這個問題,所有的建議顯示關於確保.xib文件正確命名的說明....這裏是我完全丟失的地方,因爲我沒有任何.xib文件我可以看到。我正在使用故事板,只需將視圖拖放到它並將其連接到我創建的課程。所以...我做了什麼新手錯誤?我錯過了什麼?我正在使用xCode 4.4,那麼這是不是我在這些搜索中找到的代碼?任何幫助或建議將不勝感激。

回答

0

您可以通過僅使用故事板來執行此操作,而不必爲PolicyInfoViewController創建單獨的nib文件......這樣做可能會更容易。

所以在保持代碼的第一行:

[self performSegueWithIdentifier:@"ShowPolicyInformation" sender:sender]; 

你需要重寫此方法來操縱PolicyInfoViewController

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if([segue.identifier isEqualToString:@"ShowPolicyInformation"]) 
    { 
     PolicyInfoViewController *pol = segue.destinationViewController; 
     pol.PropertyOne=txtOne.text; 
     pol.strPropertyTwo=txtTwo.text; 
    } 
} 

所以這裏發生了什麼性質?首先你要告訴控制器從故事板執行特定的繼續。第二點,你告訴控制當一個特定的segue被調用時該怎麼做。

+0

完全合作。謝謝!謝謝!謝謝! – kschuler 2012-08-01 19:42:26

相關問題