【问题标题】:iOS - Cannot hide navigation bar on first pageiOS - 无法在第一页隐藏导航栏
【发布时间】:2019-01-31 13:41:26
【问题描述】:

我在像这样的标签栏控制器之后有一个导航控制器

我想隐藏第一页的导航栏,但打开应用程序仍然不会隐藏。

我做了以下事情:

  1. 取消选中导航控制器上的“显示导航栏”
  2. 在第一页ViewController的“viewWillAppear”下添加这段代码:

[[self navigationController] setNavigationBarHidden:YES 动画:YES];

当我点击后退按钮时,它会显示我的启动画面页面,如果我下一步它会转到首页但导航栏是隐藏的。

这是我打开应用程序时的页面

这是当我点击返回并转到同一页面时

你知道我错过了什么从一开始就隐藏了导航栏。

【问题讨论】:

    标签: ios objective-c uinavigationcontroller uinavigationbar


    【解决方案1】:

    首先,我会去解决你的问题。然后我会说明UINavigationController。

    所以你使用SB在Main.storyboard中创建了一些viewControllers。这些viewControllers必须继承UITabBarController、UINavigationController或ViewController。 我看你的截图是对的,不然你的截图不清楚。

    如果你想编辑或布局视图,你需要创建ViewController并将这个ViewController与Main.storyBoard匹配。我将测试这些操作。你会的。

    然后这些 ViewController 继承匹配 ViewController。

    HomeTabBarViewController

    FirstViewController

    SecondViewController

    如上所述,非常清楚。如果你想在第一页隐藏navigationBar,你必须在FirstViewController中手写代码。同样你在viewWillAppear:中操作

    self.navigationController.navigationBar.hidden = YES;
    

    就是这样。

    如果你手写代码隐藏在HomeTabBarViewController中的navigationBar继承UITabBarController,因为navigationController是下一个ViewController,在隐藏代码中不起作用。

    所以 UINavigationController 有自动创建导航栏。你不想显示这个导航栏来使用 viewWillAppear 中的隐藏导航栏。而且你想隐藏这个页面和下一页显示,你可以把这个 viewWillAppear 隐藏,viewWillDisAppear 显示。

    希望能帮您解决问题。

    【讨论】:

      【解决方案2】:

      你可以这样做。

      localNavigationController = [[UINavigationController alloc] initWithRootViewController:theViewController];
      [localNavigationController setNavigationBarHidden:YES animated:YES];
      

      【讨论】:

        猜你喜欢
        • 2021-07-21
        • 1970-01-01
        • 1970-01-01
        • 2013-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多