【问题标题】:Navigation controller with tab bar controller of navigation controller带有导航控制器标签栏控制器的导航控制器
【发布时间】:2017-05-14 10:28:07
【问题描述】:

我有一个导航控制器,它的根视图控制器是一个标签栏控制器。在这个标签栏控制器中,我有两个这样的视图控制器:

在标签栏控制器中,我有一个自定义导航栏。 当我单击标签栏中的第一项时,导航栏看起来不错 但是当我点击第二个时,我遇到了一个问题:导航栏下方还有另一个红色的导航栏。 有人可以帮我解释一下吗?

【问题讨论】:

  • 导航栏颜色有问题
  • 是的,您必须隐藏根导航控制器。 appdelegate.window.rootviewcontroller 获取导航栏引用并隐藏它
  • 谢谢,但是当我喜欢第一项时,导航栏不是绿色,但是当我喜欢第二项时,导航栏是红色?

标签: ios interface-builder uitabbarcontroller uinavigationbar


【解决方案1】:

如果您不想要第一个导航控制器的导航栏,则从界面构建器(故事板)中选择您的根导航控制器(即嵌入 tabbarcontroller 的导航控制器)并从attribute inspector 取消选中shows navigation bar 下的Navigation controller!这将隐藏根导航视图控制器的导航栏!!

在您的情况下,您应该在 viewWillDisAppearviewWillAppear 中隐藏和显示导航栏,

viewWillAppear

   self.navigationController.navigationBar.hidden = NO;

viewWillDisAppear

   self.navigationController.navigationBar.hidden = YES;

为你的 tabbarcontroller 的两个 viewcontroller 做以上事情!!

【讨论】:

    【解决方案2】:

    您可以在根导航控制器或子导航控制器上执行navigationController.navigationBarHidden = true 任何适合您的操作。

    但如果您只使用UINavigationController 和 IMO navigationController 中的 UITabBarController,那会更好。

    【讨论】:

      猜你喜欢
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多