2009-09-19 56 views
0

我有2个XIB及其相应的视图控制器。将它们称为MainViewController和AboutViewController。 XIB的名称与ViewControllers的名称完全相同。在MainViewController中单击按钮后,我想显示AboutViewController。为什么不会加载我的NIB/XIB

我有这样的代码在MainViewController:

- (IBAction) infoButtonAction:(id)sender { 
    AboutViewController *aboutViewController = [[AboutViewController alloc] init]; 
    [[self navigationController] pushViewController:aboutViewController animated:YES]; 
} 

但没有任何反应,则AboutViewController显示不出来。我也试过这一行:

AboutViewController *aboutViewController = [[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:nil]; 

但无济于事。我错过了什么?

回答

0

你有错误?您是否检查了IB按钮是否连接正确?

你尝试过使用模态视图控制器吗?

+0

我没有得到任何错误。按钮连接正确,因为它停止在点击功能内的断点处。 – AngryHacker 2009-09-19 18:31:46

1

在Interface Builder中检查AboutViewController.xib并确保文件所有者在类检查器中设置为AboutViewController。还要确保文件所有者的view属性连接到xib中的视图中。最后,代码显示它应该阅读:

- (IBAction) infoButtonAction:(id)sender { 
    AboutViewController *aboutViewController = [[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:nil]; 
    [[self navigationController] pushViewController:aboutViewController animated:YES]; 
    [aboutViewController release]; 
} 

此外,你应该检查这是非零相同的方法内:

UINavigationController * nc = self.navigationController; 
+0

你说得对。 self.navigationController是零。你能告诉我为什么和我能做些什么吗? – AngryHacker 2009-09-19 21:02:01

+0

这意味着您的MainViewController不在navigationController中。你将需要检查你如何创建你的MainViewController。 – Jason 2009-09-22 11:46:30