UINavigationController navigationBarHidden 仅针对单个视图控制器设置为 true

Posted

技术标签:

【中文标题】UINavigationController navigationBarHidden 仅针对单个视图控制器设置为 true【英文标题】:UINavigationController navigationBarHidden set to true only for a single view controller 【发布时间】:2014-12-22 23:35:40 【问题描述】:

假设,我有一个类型的视图层次结构:

A [rootviewcontroller of a UINavigationController] --> B --> C

我想为 A 禁用 navigationBar 但为 B & C 启用它。

    可以这样做吗? 目前,我通过在viewWillAppear 中为 B 和 C 启用它来实现这一点,但在 viewWillAppear 为 A 时禁用它。这有点工作,但感觉不自然和强迫。有正确的方法吗?

【问题讨论】:

我认为这是正确的方法,但如果导航总是从 A 到 B 再到 C,则不必在 C 中设置它。 确实如此。谢谢。 您也可以在 viewDidLoad 中执行此操作,然后不会在每次视图出现时都执行此操作,而只是第一次。 您是否尝试在vc A的viewDidDisAppear中启用导航? 【参考方案1】:

你最好将导航栏隐藏在 viewDidAppear 方法中。

  -(void)viewDidAppear:(BOOL)animated  

        [yourNavigationController setNavigationBarHidden:YES animated:YES];   
   

【讨论】:

以上是关于UINavigationController navigationBarHidden 仅针对单个视图控制器设置为 true的主要内容,如果未能解决你的问题,请参考以下文章

带有主 UINavigationController 和详细 UINavigationController 的 UISplitViewcontroller

带有 UINavigationController 的 UITabBarController,在 hidesBottomBarWhenPushed 上隐藏 UINavigationController

在 UINavigationController 内的 UITabBarcontroller 中添加 UINavigationController?

UINavigationController 与 AppDelegate 中的 UISegmentedControl 切换 UINavigationController 的 rootviewcontr

从一个 UINavigationController 到另一个 UINavigationController (Swift iOS 9, xcode 7)

UINavigationController