【问题标题】:How to disable navigation bar in iOS如何在 iOS 中禁用导航栏
【发布时间】:2014-02-27 10:26:22
【问题描述】:

我想在添加子视图时禁用导航栏,并在删除子视图后再次启用它。怎么做。显示操作表时的类似操作。

【问题讨论】:

    标签: ios ios7 uinavigationcontroller uinavigationbar childviewcontroller


    【解决方案1】:

    在斯威夫特中:

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

    【讨论】:

      【解决方案2】:

      使用(目标-C):

      [self.navigationController setNavigationBarHidden:YES animated:YES];
      

      【讨论】:

      • 我需要禁用它并让它看起来像 ActionSheet 一样褪色。
      • 将导航栏的 alpha 值设置为 0.6 或 0.5 以进行淡入淡出,当需要正常时,将其重置为 1。 navigationBar.alpha=0.5f;
      • 这可行,但状态栏现在在 iOS7 中淡出
      • 这出乎意料。因为状态栏将具有 alpha 1。您可以尝试更改状态栏类型 lightcontent。如果问题仍然存在,对不起兄弟。
      【解决方案3】:

      请注意,如果您想避免以这种方式再次启用它们,您可能必须跟踪最初禁用的按钮。

      我也没有检查这是否包括后退按钮。我猜它没有,所以如果需要,你也必须考虑到这一点。

      NSArray* allBarButtons = [self.navigationController.navigationBar.topItem.leftBarButtonItems arrayByAddingObjectsFromArray:self.navigationController.navigationBar.topItem.rightBarButtonItems];
      for (UIBarButtonItem* barButton in allBarButtons) {
           barButton.enabled = NO;
      }
      

      【讨论】:

        【解决方案4】:

        在 Swift 4 中,将下面的代码放在 ViewController 的 viewDidLoad() 中。

        self.navigationController?.isNavigationBarHidden = true
        

        【讨论】:

          【解决方案5】:
          self.navigationController.navigationBar.topItem.leftBarButtonItem.enabled = NO;
          self.navigationController.navigationBar.topItem.rightBarButtonItem.enabled = NO;
          self.navigationController.navigationBar.topItem.backBarButtonItem.enabled = NO;
          

          【讨论】:

            【解决方案6】:

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

            【讨论】:

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