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

问题描述

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

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

或者干脆把self.tabBarController?.tabBar.hidden = true/falseprepareForSegue

但是我不建议您这样做,因为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 = false
        self.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的一些解释,因为它混淆了我
很多

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...