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

How to get rid of the navigation bar for one screen and show for the remaining

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

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.
根据上面给出的解决方案link我需要去掉代码:

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

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

用这个代替 navigationBarHidden:

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

在您的 SecondViewController 中添加此代码:

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

    self.navigationController?.navigationBarHidden = false
}

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

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")

        }