3

我正在使用 RootViewController 中的以下代码加载模态视图控制器:

[self.navigationController presentModalViewController:accountViewController animated:YES];

在 accountViewController xib 文件中,我设置了一个导航栏。我的 MainWindow.xib 和 RootViewController.xib 也正确设置了导航栏。此外,我的应用程序委托已正确设置导航控制器(我假设):

UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
self.navigationController = aNavigationController;

[window addSubview:navigationController.view];

但是,当我加载我的 accountViewController 时, UINavigationBar 无处可寻。不能在模态视图中显示 UINavigationBar 吗?我打算用它来隐藏后退按钮,并添加一个右键...

4

3 回答 3

6

sha 的答案是正确的,但我给出了自己的答案,以通过代码示例对其进行扩展以使其清楚。

你可能想要这样的东西:

- (void)showAccountViewController
{
    AccountViewController* accountViewController = [[AccountViewController alloc] initWithNibName:@"AccountView" bundle:nil];
    ...
    // Initialize properties of accountViewController
    ...
    UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:accountViewController];
    [self.navigationController presentModalViewController:navController animated:YES];
    [navController release];
    [accountViewController release];
}
于 2010-09-11T19:56:17.503 回答
1

您需要推送的不是 viewController,而是里面有 viewController 的 navigationController。

于 2010-09-11T12:13:42.970 回答
0

您还可以将属性检查器中的演示样式设置为“当前上下文”。模态视图不会覆盖导航栏。

于 2015-03-06T16:13:24.090 回答