Ios 按下/弹出时如何隐藏/取消隐藏选项卡栏

Ios 按下/弹出时如何隐藏/取消隐藏选项卡栏,ios,swift,xcode,Ios,Swift,Xcode,我有一个标签栏,我只需要在五个屏幕上。但是,当我按下视图控制器时,它会进入每个屏幕。我该如何阻止这种情况发生。我发现很多解决方案告诉我在按下按钮时使用HidesBottomBar,但我遇到的问题是,当我弹出视图控制器时,选项卡栏消失了。我如何解决这个问题?另外,请给我一些建议,因为我是新来的!谢谢 编辑:我也看到了:Sub.TabAbController .TabBar .Health= FALSE,但这种类型看起来很奇怪,因为在推送动画中间,标签栏消失了。 < P>需要继承UnavigigCo

我有一个标签栏,我只需要在五个屏幕上。但是,当我按下视图控制器时,它会进入每个屏幕。我该如何阻止这种情况发生。我发现很多解决方案告诉我在按下按钮时使用HidesBottomBar,但我遇到的问题是,当我弹出视图控制器时,选项卡栏消失了。我如何解决这个问题?另外,请给我一些建议,因为我是新来的!谢谢


编辑:我也看到了:Sub.TabAbController .TabBar .Health= FALSE,但这种类型看起来很奇怪,因为在推送动画中间,标签栏消失了。

< P>需要继承UnavigigController自定义导航控制器,重载PuffVIEW Controller和StVIEW Controller方法来设置HIDESButoBar,当按下时,然后使用自定义导航控制器跳转

open class CustomNavigationController: UINavigationController {

  ...

  open override func pushViewController(_ viewController: UIViewController, animated: Bool) {
    if viewControllers.count > 0 {
      viewController.hidesBottomBarWhenPushed = true
    }
    super.pushViewController(viewController, animated: animated)
  }

  open override func setViewControllers(_ viewControllers: [UIViewController], animated: Bool) {
    if viewControllers.count > 1, let vc = viewControllers.last {
      vc.hidesBottomBarWhenPushed = true
    }
    super.setViewControllers(viewControllers, animated: animated)
  }

}

我真的弄明白了。基本上,在视图中添加self.hidesBottomBarWhenPushed=true,在视图中添加self.hidesBottomBarWhenPushed=true
self.hidesBottomBarWhenPushed=false。无论如何,谢谢你们的回答。

谢谢你们的回答,但我找到了一个更简单的解决办法