【问题标题】:Properly manage nav bar and tab bar妥善管理导航栏和标签栏
【发布时间】:2018-06-06 16:51:27
【问题描述】:

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

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

隐藏 tabBar
self.tabBarController?.tabBar.isHidden = true

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

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

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

【问题讨论】:

  • 我不明白这个问题。你似乎已经解决了你自己的问题——至少以两种不同的方式!那么问题是什么?
  • 我不确定我提到的解决方案是否正确。所以我想知道如何对齐导航栏控制器和标签栏控制器以获得我提到的效果,而不需要编写代码来隐藏栏。
  • 如您所知,有一个hidesBottomBarWhenPushed 属性。但是你的问题的前提是好奇。代码在某些方面并不糟糕

标签: swift navbar tabbar


【解决方案1】:

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

    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,这样您就不必写下任何代码。

【讨论】:

  • 我尝试使用情节提要选项。一旦我将标签栏隐藏在视图控制器中,对于随后的所有其他视图控制器,它仍然是隐藏的。这是我现在需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多