presentModalViewController不显示naviagionbar

时间:2012-03-02 23:19:45

标签: objective-c ios cocoa-touch presentmodalviewcontroller

我需要做什么,在视图中显示导航栏,通过presentModalViewController呈现?

我从代码中调用presentModalViewController。

当我在故事板中看到相同的视图时,在这种情况下,whitch嵌入在navcontroler中,一切正常。

THX 云母

2 个答案:

答案 0 :(得分:4)

在呈现模态时,您需要向控制器添加导航栏

    UIViewController* myViewController = [[UIViewController alloc] init];
UINavigationContoller* navController = [[UINavigationController alloc] initWithRootViewController:myViewController];
[self presentModalViewController:navController animated:YES];

然后在myViewController的viewWillAppear方法中,您可以为模态控制器设置一个关闭或关闭按钮。

如果您使用故事板,另一种方法是按名称获取故事板并按标识符实例化控制器。

UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"storyboard" bundle:nil];
[storyboard instantiateViewControllerWithIdentifier:@"myViewController"];

在第二个示例中,myViewController是storyboard文件中的UINavigationController。 我假设所有代码都是ARC。

答案 1 :(得分:0)

假设我理解了您的问题,您在一个屏幕上已经存在导航视图控制器,并且您想打开下一个屏幕并仍然存在。

在这种情况下,不要在视图上使用[view presentModalViewController:animated:],而是在导航视图控制器上使用[NavController pushViewController:animated:]。