UINavigationBar拒绝在Modal View Controller中显示

时间:2010-09-11 12:07:46

标签: iphone uinavigationbar modalviewcontroller

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

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

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

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

[window addSubview:navigationController.view];

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

3 个答案:

答案 0 :(得分: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];
}

答案 1 :(得分:1)

你需要推送不是viewController而是内部有viewController的navigationController。

答案 2 :(得分:0)

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