iOS:当从主视图控制器嵌入时,导航栏不显示

Posted

技术标签:

【中文标题】iOS:当从主视图控制器嵌入时,导航栏不显示【英文标题】:iOS:Navigation bar not showing when is embed from the main view controller 【发布时间】:2017-06-01 16:27:24 【问题描述】:

我的故事板上有以下布局:

当我点击按钮时,我会加载蓝色视图控制器:

- (IBAction)blue:(id)sender 

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    BlueViewController *blue = [storyboard instantiateViewControllerWithIdentifier:@"BlueViewController"];
    [self presentViewController:blue animated:YES completion:nil];

蓝色视图控制器嵌入了导航栏。但在蓝色视图控制器或粉红色视图控制器上均不显示:

我对你们的问题是我做错了什么?或者为什么视图控制器没有显示?

【问题讨论】:

【参考方案1】:

为蓝色 VC 的导航控制器提供一个故事板 ID,并显示它而不是蓝色 VC。

如果你展示一个 VC,即使它有一个导航控制器,它也不会显示出来,因为你只展示了视图控制器。

- (IBAction)blue:(id)sender 

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UINavigationController *blueNavVC = [storyboard instantiateViewControllerWithIdentifier:@"BlueViewControllerNavigationController"];
    [self presentViewController: blueNavVC animated:YES completion:nil];

当你想从蓝色移动到粉色时,你需要推送到粉色控制器,因为粉色是蓝色导航控制器堆栈的一部分!

【讨论】:

你是什么意思?,你能发个例子吗? 非常感谢您的帮助!【参考方案2】:

如果您想在视图控制器上显示,那么您必须在控制器顶部添加一个自定义视图,因为它位于您的导航控制器上。如果您按下控制器,则不需要上述内容。您会发现所有人都使用相同的导航栏。 Cz 它在您的导航控制器堆栈中。

【讨论】:

以上是关于iOS:当从主视图控制器嵌入时,导航栏不显示的主要内容,如果未能解决你的问题,请参考以下文章

导航栏不显示

IOS Swift CNContactViewController 导航栏不显示 UINavigation 控制器

iOS解决隐藏导航栏后,打开照片选择器后导航栏不显示的问题以及更换导航栏背景色

导航栏不隐藏

导航栏不出现

导航栏不显示