在根视图控制器上隐藏导航栏,否则显示它 - Swift

9

我需要仅从根视图控制器隐藏导航栏,

当我尝试通过禁用“显示导航栏”从故事板中隐藏它时,它会从连接到该根视图控制器的所有其他视图控制器中隐藏。

可能的解决方案是什么?

1个回答

27

我用这段代码解决了它:

override func viewWillDisappear(_ animated: Bool) {
    self.navigationController?.setNavigationBarHidden(false, animated: animated);
    super.viewWillDisappear(animated)
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.setNavigationBarHidden(true, animated: animated)
}

2
我发现在表格上向上滚动会使导航栏再次出现。通过将viewWillAppear更改为navigationController?.navigationBar.hidden = true可以避免这种情况。 - Ben Sullivan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接