2012-08-01 86 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

相关问题