带有导航控制器标签栏控制器的导航控制器

Navigation controller with tab bar controller of navigation controller

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

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

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

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

viewWillAppear

   self.navigationController.navigationBar.hidden = NO;

viewWillDisAppear

   self.navigationController.navigationBar.hidden = YES;

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

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

但是如果你只使用一个 UINavigationController 和 IMO navigationController of UITabBarController 会更好。