推/回时隐藏/显示标签栏迅速

【字号: 日期:2024-04-12浏览:40作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决推/回时隐藏/显示标签栏迅速?

顾名思义,hiddenBottomBarWhenPushed仅在需要时隐藏底部栏,而不会取消隐藏bottomBar。您可以执行以下操作使其生效:

override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) self.tabBarController?.tabBar.hidden = true/false}

或者干脆把self.tabBarController?.tabBar.hidden = true/false在prepareForSegue

但是我不建议您这样做,因为bottomBar突然弹出会很奇怪,用户会以为它们突然回到了rootViewController而不是。

用户应始终知道他们在应用中的位置以及如何到达下一个目的地。

解决方法

答案:在每个视图控制器中使用self.tabBarController?.tabBar.hidden而不是hidesBottomBarWhenPushed来管理视图控制器是否应显示选项卡栏。

override func viewWillAppear(animated: Bool) { self.tabBarController?.tabBar.hidden = true/false}

我想要

视图控制器1:应显示选项卡栏

视图控制器2:应显示标签栏

视图控制器3:不应显示选项卡栏。

视图控制器4:不应显示选项卡栏。

我写

// prepareForSegue in view controller 1,let upcoming = segue.destinationViewController as! viewcontroller3 upcoming.hidesBottomBarWhenPushed = true// in view controller 3,func clickOnButton(button: UIButton) {self.hidesBottomBarWhenPushed = falseself.performSegueWithIdentifier('viewController2',sender: self)self.hidesBottomBarWhenPushed = true } override func prepareForSegue(segue: UIStoryboardSegue,sender: AnyObject?) {if segue.identifier == 'viewController2' { let upcoming = segue.destinationViewController as! viewController2 upcoming.hidesBottomBarWhenPushed = false} }// prepareForSegue in view controller 2 let upcoming = segue.destinationViewController as! viewController4 upcoming.hidesBottomBarWhenPushed = true

如果1-> 3,则返回1。

如果1-> 3-> 2则返回3并返回1。

如果2-> 4,则返回2。

如果1-> 3-> 2-> 4,则返回2,不显示选项卡栏。想知道为什么。任何建议或hidesBottomBarWhenPushed的一些解释,因为它混淆了我很多

相关文章: