没有导航栏的UINavigationController?

DOO*_*iac 115 uinavigationcontroller ios

我有一个通用应用程序,在iPad版本上我UISplitViewController用来创建类似于Mail应用程序的界面.

我在推送新的Detail视图时遇到了麻烦,所以我决定使用一个,UINavigationController所以我可以根据需要推送和弹出视图.但是,我不想使用导航视图或工具栏.但无论我做什么,我都无法隐藏导航栏.

我已经尝试取消选中IB中的"显示导航栏",我也尝试过设置:

[self.navigationController setNavigationBarHidden:YES];
Run Code Online (Sandbox Code Playgroud)

viewDidLoad/ viewDidAppear/ viewWillAppear.我也在每个将要推送的视图中尝试过它.什么都行不通.

这里有什么我想念的吗?是否可以UINavigationController没有工具栏或导航栏?

Ash*_*win 187

您应该能够执行以下操作:

self.navigationController.navigationBar.hidden = YES;
Run Code Online (Sandbox Code Playgroud)

self.navigationController(显然)是UINavigationController的一个实例.似乎对我有用,但我在发布之前只对其进行了简要的测试.

  • 我称之为viewwillapear,在我的视图控制器中就像这样` - (void)viewWillAppear:(BOOL)animated {self.navigationController.navigationBar.hidden = YES; }`它有效 (5认同)
  • 那就做到了!虽然我会补充说我能够简单地检查IB中Nagivation工具栏的隐藏框,而不是通过代码执行.谢谢! (4认同)
  • 所以,在你的情况下,self.navigationController.navigationBar.hidden = YES; (2认同)
  • 导航栏已隐藏,但我的视图控制器屏幕未扩展到全屏 (2认同)

Hal*_*alR 40

如果您不想要导航栏,并且希望将内容调整到导航栏通常所在的位置,则应使用

self.navigationController.navigationBarHidden = YES;
Run Code Online (Sandbox Code Playgroud)

这会给你一个像这样的结果:

在此输入图像描述

self.navigationController.navigationBar.hidden = YES;为您提供了navigationBar应该存在的空间.像这样:

在此输入图像描述


Avn*_*ner 39

在Xcode 4.3.2中:

  1. 在故事板中选择导航控制器
  2. 在(右侧)"实用程序"面板中选择"属性"检查器
  3. 在导航控制器类别下,您有两个复选框:

    []显示导航栏

    []显示工具栏

为我工作......


小智 8

斯威夫特4

我将它隐藏在viewWillAppear中

     override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        self.navigationController?.isNavigationBarHidden = true;
    }
Run Code Online (Sandbox Code Playgroud)

然后你可以在推动segue时把它放回去(如果你想在下一个视图上有后退按钮)

     override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
     {
        self.navigationController?.isNavigationBarHidden = false;
     }
Run Code Online (Sandbox Code Playgroud)