如何在按下时隐藏底栏,但保留在主视图控制器中

时间:2014-11-15 09:30:24

标签: ios swift uiviewcontroller

当我按下主视图控制器中的按钮或单元格(在表格中)以推送到另一个视图控制器时,我想要隐藏底栏,而当我按下底部栏中的按钮时,我想隐藏 。 当我回到主视图控制器我想回到底部栏

我在主视图控制器中尝试了代码: hidesBottomBarWhenPushed = true

但是当我按下底栏中的一个项目并返回到主视图控制器时,底栏消失,当我转到新视图控制器时(通过从主视图控制器推送),底部相同主视图控制器中的栏消失。

4 个答案:

答案 0 :(得分:5)

到目前为止,我可以看到你必须隐藏第一个视图控制器中prepareForSegue func中的底栏。以下代码在我这方面运作良好:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "yourSegue" {
        if let indexPath = tableView.indexPathForSelectedRow() {
            if let destVC = segue.destinationViewController as? TargetVC {
                destVC.hidesBottomBarWhenPushed = true
            }
        }
    }
}

答案 1 :(得分:2)

问题很旧,但首先是谷歌搜索。

从界面构建器中,使用复选框“在推送时隐藏底栏”:

enter image description here

答案 2 :(得分:0)

在推送的View控制器中:

   init() {
            super.init(nibName: nil, bundle: nil)
            self.hidesBottomBarWhenPushed = true
        }

答案 3 :(得分:0)

由于PeiweiChen的回答对我不起作用,我想出了这个:

(必须将其放入推送的View Controllers文件中)

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.hidesBottomBarWhenPushed = true
    }

PS:这是Swift 2.0