【问题标题】:How to hide/disable only the first uinavigationbar?如何仅隐藏/禁用第一个 uinavigationbar?
【发布时间】:2011-03-23 13:12:15
【问题描述】:

我一直在徘徊如何隐藏/删除/禁用导航控制器中的主导航栏或第一个导航栏,以便我可以将图像作为整个背景屏幕放置,但我找不到任何解决方案。

尝试在主导航控制器的 viewdidLoad 中隐藏标题视图,但没有奏效。尝试使用 navigationBarHidden,但它为下一个控制器堆栈隐藏了整个导航栏。

所以,我不知道该怎么做。举个例子,我想要这个应用程序 - The Masters Golf Tournament - http://appshopper.com/sports/the-masters-golf-tournament.

如果您查看屏幕 1,它的顶部没有任何导航栏,但是当您触摸任何选项时,它会推送到新的视图控制器并让导航栏出现在屏幕 3,4 和 5 中。

希望有人能帮我解决这个问题。非常感谢!

【问题讨论】:

    标签: iphone iphone-sdk-3.0 uinavigationcontroller uinavigationbar uinavigationitem


    【解决方案1】:

    在我的大多数应用程序中,我都有一个自定义 UIViewController 类,我从中派生所有其他自定义控制器。在其中一些中,我向基类添加了一个类似navigationBarInitiallyHidden 的方法,其他类可以覆盖该方法。默认结果取决于应用程序的性质。

    在导航控制器的委托中,当显示实现该方法的控制器时,委托会相应地隐藏或显示导航控制器。由于我为隐藏或显示设置动画,因此我检查当前状态,如果不需要更改,则不执行任何操作。

    你可以在你的委托方法中做一些更简单的事情。如果显示的控制器是根控制器,则隐藏导航栏,如果隐藏则显示。

    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
      if ( viewController == rootController ) {
        [navigationController setNavigationBarHidden:YES animated:animated];
      } else if ( [navigationController isNavigationBarHidden] ) {
        [navigationController setNavigationBarHidden:NO animated:animated];
      }
    }
    

    【讨论】:

      【解决方案2】:

      您可以隐藏导航栏: [self.navigationController setNavigationBarHidden:YES]; 以及您想再次显示导航栏的位置 [self.navigationController setNavigationBarHidden:NO];

      【讨论】:

        【解决方案3】:

        隐藏/禁用

        self.navigationController.navigationBarHidden = YES;
        

        显示/启用

        self.navigationController.navigationBarHidden = NO;
        

        【讨论】:

          【解决方案4】:

          您可以使用以下代码隐藏导航栏。下面的代码将在 viewWillAppear 时隐藏导航栏。

          目标 C

          -(void)viewWillAppear:(BOOL)animated
           {
                  [[self navigationController] setNavigationBarHidden:YES animated:NO];
           }
          

          斯威夫特

          self.navigationController?.setNavigationBarHidden(true, animated: animated)
          

          【讨论】:

            猜你喜欢
            • 2011-11-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-01-27
            • 2013-10-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多