【问题标题】:How to get rid of the navigation bar for one screen and show for the remaining如何摆脱一个屏幕的导航栏并显示剩余的屏幕
【发布时间】:2016-08-08 15:48:16
【问题描述】:

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

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 有人可以帮助解决这两个问题吗?

【问题讨论】:

  • 您可以导航到所有其他视图
  • self.navigationController?.navigationBarHidden =false

标签: ios swift uinavigationcontroller uinavigationbar


【解决方案1】:

用这个代替navigationBarHidden:

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

【讨论】:

  • 弹出白色而不是可见的黑色
  • @PersianBlue 更新了我的答案。再试一次。
【解决方案2】:

在您的SecondViewController 中添加此代码:

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

    self.navigationController?.navigationBarHidden = false
}

【讨论】:

  • 你的意思是在第一个视图控制器上隐藏它并在第二个视图控制器中显示它?
  • 不。仍然存在黑人流行音乐问题
  • 我在问题中给出的链接有一个截图。我的屏幕看起来一模一样,颜色也一样
【解决方案3】:

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

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

        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 2010-11-09
    • 2021-07-19
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    相关资源
    最近更新 更多