Ios 返回UINavigationController时如何隐藏uitabar

Ios 返回UINavigationController时如何隐藏uitabar,ios,swift,uinavigationcontroller,uitabbarcontroller,Ios,Swift,Uinavigationcontroller,Uitabbarcontroller,我有三个视图控制器: FeedController UtiAbar可见 后置控制器Uitabar已隐藏 用户控制器UITabBar可见 从FeedController到PostController,我使用以下代码执行此操作: let postVC = PostController() postVC.hidesBottomBarWhenPushed = true pushViewController(postVC, animated: true) postVC.hidesBottomBarWhen

我有三个视图控制器:

FeedController UtiAbar可见 后置控制器Uitabar已隐藏 用户控制器UITabBar可见 从FeedController到PostController,我使用以下代码执行此操作:

let postVC = PostController()
postVC.hidesBottomBarWhenPushed = true
pushViewController(postVC, animated: true)
postVC.hidesBottomBarWhenPushed = false
  override func viewWillDisappear(_ animated: Bool) {
   postVC.hidesBottomBarWhenPushed = true
}
然后,从PostVC到UserVC:

let userVC = UserController()
userVC.hidesBottomBarWhenPushed = false
pushViewController(userVC, animated: true)
它工作得很好。它在任何地方都显示UITabBar,导航到帖子时除外。但是,当我从Post中转到用户配置文件UserController时,就会出现问题。它按预期在配置文件上显示UITabBar,但当我使用UINavigationController中的后退按钮返回时,UITabBar仍然可见。当我从userVC返回到postVC时,我希望它再次被隐藏


有什么方法可以做到这一点吗?

在您的post viewController中尝试:

let postVC = PostController()
postVC.hidesBottomBarWhenPushed = true
pushViewController(postVC, animated: true)
postVC.hidesBottomBarWhenPushed = false
  override func viewWillDisappear(_ animated: Bool) {
   postVC.hidesBottomBarWhenPushed = true
}

这将在视图即将消失时调用它,而不是在视图出现时调用它,因此当您返回时,它应该隐藏起来。

这太不可思议了,正是我所需要的。我一直在玩弄ViewWillExample和ViewWillEnglishe,但我一直在使用另一个viewController,例如,将postVC从userVC的WillEnglishe更改为postVC。太好了,非常感谢@很高兴听到你这么说!我发现自己多次陷入与你类似的境地,而答案总是在休息或做其他事情时出现!想想看,当你真正专注的时候,很容易被抓在错误的地方,祝你好运!我担心一开始我有点太激动了。当我实现这一点时,一切似乎都很好,但是,如果我从userVC转到另一个viewController,它也会隐藏选项卡栏,同时它也应该再次显示。因此,我目前正在寻找一种只在我确信“后退”按钮被点击时才显示它的方法,到目前为止,没有运气。@PennyWise“后退”按钮是您制作的按钮、导航栏“后退”按钮还是其他什么?@PennyWise首先想到的是,例如,您制作的按钮,您可以将变量var backButtonPressed=false设置为true,并在按钮代码中将其设置为true,然后在viewWillDissapear中使用backButtonPressed==true{然后隐藏选项卡栏,如果不是true,则返回而不隐藏它。这听起来对吗?