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 控制器