【问题标题】:Remove top bar from view controller从视图控制器中删除顶部栏
【发布时间】:2012-07-26 10:27:06
【问题描述】:

我有一个视图控制器,我想要一个顶栏,而另一个我没有。

它们都在同一个导航控制器中。

如何让第一个视图控制器没有顶栏,而第二个视图控制器有顶栏


编辑:

如果我使用[self.navigationController setNavigationBarHidden:YES];,那么在下一个屏幕完成之前,顶部栏的位置会出现一个黑框。我该如何避免这种情况?

【问题讨论】:

    标签: iphone ios interface navigation


    【解决方案1】:

    在你的第一个视图控制器中使用这个属性:

    [self.navigationController setNavigationBarHidden:NO];
    

    在第二个视图控制器中,在 viewWillAppear 中,放在下面一行,

      [self.navigationController setNavigationBarHidden:YES];
    

    在第二个视图控制器中,在 viewWillDisappear 中,放在下面一行,

    [self.navigationController setNavigationBarHidden:NO];
    

    【讨论】:

    • 这行得通,但是当我想在屏幕之间来回导航时,顶部栏是打开的。我在 viewDidLoad 方法中调用了该代码。你也有是和不是错误的方式:P
    • 是否可以制作动画,当顶部栏被移除时,有一个很大的黑色空间......
    • 还是有黑点。这可能是由于我在模拟器中运行应用程序造成的吗?
    • 否。您在 Appdelegate.m 中使用第二个视图控制器的背景颜色设置窗口颜色。
    • 如果我的背景是纹理怎么办?
    【解决方案2】:

    调用方法:

    [self.navController setNavigationBarHidden:YES];
    [self.navController setNavigationBarHidden:NO];
    

    在您要隐藏/显示 NavController 的每个视图的 ViewWillAppear 方法中。

    【讨论】:

      【解决方案3】:

      当你想隐藏导航栏时使用self.navigationController.navigationBar.hidden = YES;,当你想取消隐藏导航栏时使用self.navigationController.navigationBar.hidden = NO;

      【讨论】:

      • 当我返回 segue 时,rishi 似乎是黑色的?有什么办法可以去掉?
      【解决方案4】:

      您可以使用此代码隐藏导航栏:

      [self.navController setNavigationBarHidden:YES];
      

      并在下一个视图控制器中再次设置:

      [self.navController setNavigationBarHidden:NO];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多