首页 > 解决方案 > 妥善管理导航栏和标签栏

问题描述

该图显示了我的故事板,并按照指示进行了转场。

故事板

在 tabBar 的着陆视图控制器(即 I)中,tabBar 和 navBar 都是可见的,这是所需的。但是,如果(从 I)执行 segue 以转到另一个视图控制器(此处为 II),我只想要导航栏。我可以通过使用隐藏 tabBar

self.tabBarController?.tabBar.isHidden = true

接下来,我可以通过在开头添加导航控制器来达到预期的效果,如下所示。

在此处输入图像描述

此配置将在前面的视图控制器中添加一个导航栏(如启动屏幕),因此我必须在这些视图控制器中隐藏导航栏。

是否有其他不需要隐藏栏并达到预期效果的方法?

标签: swiftnavbartabbar

解决方案


您应该采用第一种方法。标签栏控制器具有隐藏底栏的默认属性。请参见下面的示例代码。

    ViewController *viewController = [[ViewController alloc] init];
viewController.hidesBottomBarWhenPushed = YES;  // This property needs to be set before pushing viewController to the navigationController's stack. 
[self.navigationController pushViewController:viewController animated:YES];

这将在推送到任何子控制器时隐藏您的标签栏。

编辑

您还可以为您的标签栏控制器设置从情节提要中推送时的 hidesBottomBar,这样您就不必写下任何代码。


推荐阅读