我想添加一个UINavigationController到我的应用程序信息视图(不是我的主视图)。我看过/阅读了很多教程,展示了如何使用IB通过AppDelegate将其添加到主窗口。在我的情况下,我只希望它出现在用户按下信息按钮并被带到infoView。这里是我我MainViewController内切换到InfoView的:将UINavigationController添加到主视图以外的视图
- (IBAction)infoButtonPress:(id)sender
{
// Create pointer to instance of InfoViewController
InfoViewController *infoView = [[InfoViewController alloc] initWithNibName:@"InfoViewController" bundle:nil];
// Add view switching animation
infoView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
// Change view using animation
[self presentModalViewController:infoView animated:YES];
}
此时将显示InfoView的,我想这是对的UINavigationController的RootView。我尝试添加该行:
UINavigationController *infoNavController = [[UINavigationController alloc]
initWithRootViewController:infoView];
创建InfoViewController的实例后,应用程序崩溃。是否有可能将UINavigationController添加到除主视图以外的视图?
谢谢。
崩溃日志说什么?那条线应该没问题。然后,您应该将infoNavController作为模式视图控制器呈现,而不是呈现infoView本身。 – 2012-01-13 19:25:09
哦..所以我把infoView的第二行和第三行改为infoNavController。这确实奏效,谢谢。这样做,我必须以编程方式编辑NavigationBar吗?还是我仍然可以使用IB? – 2012-01-13 19:39:51
在这种情况下,编程方式将是最简单的,除非您要从XIB加载整个导航控制器。 – 2012-01-13 19:42:22