如何摆脱一个屏幕的导航栏,并显示剩余的

时间:2016-08-08 07:24:30

标签: ios swift uinavigationcontroller uinavigationbar

我想隐藏第一个视图控制器的导航栏并显示其余部分。为了实现这一点,我编写了以下代码:

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)

self.navigationController?.navigationBarHidden = true
}
override func viewWillDisappear(animated: Bool)
{
super.viewWillDisappear(animated)
self.navigationController?.navigationBarHidden = false
}

编写此代码后,它工作正常,即此视图控制器不显示导航栏,其余显示所需。但在编写此代码后,会出现另一个问题,如下所示: problem link
根据上面链接给出的解决方案,我需要删除代码:

 override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBarHidden = true
}

这让我回到问题1 任何人都可以帮助解决这两个问题吗?

3 个答案:

答案 0 :(得分:1)

使用此代替navigationBarHidden

self.navigationController?.setNavigationBarHidden(true, animated: animated)

答案 1 :(得分:1)

SecondViewController添加此代码:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    self.navigationController?.navigationBarHidden = false
}

答案 2 :(得分:0)

在您要隐藏的视图导航栏上。把这段代码。

override func viewWillAppear(animated: Bool) {

        super.viewWillAppear(animated)
        self.navigationController?.navigationBarHidden = true;

        print("Navgition bar hidden")

    }

在下一个视图中,从您要显示导航栏的位置。放在下面的代码。

override func viewWillAppear(animated: Bool) {

            super.viewWillAppear(animated)
            self.navigationController?.navigationBarHidden = true;

            print("Navgition bar show")

        }