Swift:尽管我调用了所需的代码,但导航栏仍然隐藏?

Swift: Navigation Bar ist hiding although I call the required code?

我有两个 VC 具有相同的导航控制器,在我的第一个 VC 上,导航栏应该隐藏,第二个导航栏较大。这两个 VC 通过推送连接连接。但是,如果我单击在推送 segue 后出现的后退按钮,导航栏将再次出现,尽管 VC 首次出现时没有导航栏。 我的代码放在第一个 VC:

override func viewDidLoad() {
    super.viewDidLoad()
    navigationController!.navigationBar.isHidden = true
}

viewDidLoad() 方法只被调用一次,但是 viewWillAppear 方法中的代码行:

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

    navigationController!.navigationBar.isHidden = true
}

您必须将导航栏隐藏在您的 viewWillAppear 函数中,并且必须在您的第一个 VC 的 viewWillDisappear 函数中取消隐藏它,这样它就不会在所有 VC 中被隐藏秒。只需使用以下代码,它就会起作用:

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

    // Hide the navigation bar on the this view controller
    navigationController?.setNavigationBarHidden(true, animated: animated)
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    // Show the navigation bar on other view controllers
    navigationController?.setNavigationBarHidden(false, animated: animated)
}