Swift:尽管我调用了所需的代码,但导航栏却隐藏了?
Posted
技术标签:
【中文标题】Swift:尽管我调用了所需的代码,但导航栏却隐藏了?【英文标题】:Swift: Navigation Bar ist hiding although I call the required code? 【发布时间】:2018-10-28 19:41:11 【问题描述】:我有两个具有相同导航控制器的 VC,在我的第一个 VC 上,导航栏应该是隐藏的,而第二个应该很大。两个 VC 通过 push segue 连接。但是,如果我单击在推后出现的后退按钮,导航栏会再次出现,尽管当 VC 首次出现时没有导航栏。 我在第一个 VC 上的代码:
override func viewDidLoad()
super.viewDidLoad()
navigationController!.navigationBar.isHidden = true
【问题讨论】:
【参考方案1】:方法 viewDidLoad() 只被调用一次,所以只是 viewWillAppear 方法中的那一行代码:
override func viewWillAppear(_ animated: Bool)
super.viewWillAppear(animated)
navigationController!.navigationBar.isHidden = true
【讨论】:
对我帮助很大 投了赞成票,因为您先回答。但是不要忘记包括“安全”或“有意义”或可读的编码实践......如果您打算在 一些 VC而不是在其他中隐藏栏,在每个 VC中明确包含你的意图并没有错。【参考方案2】:您必须在 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)
【讨论】:
以上是关于Swift:尽管我调用了所需的代码,但导航栏却隐藏了?的主要内容,如果未能解决你的问题,请参考以下文章
创建自定义 psobject 时出现 op_Subtraction 错误,尽管检索到了所需的结果
尽管提供了所需的路径,如何修复“无法在您的路径中找到 Git”错误
我得到了所需的输出,但它仍然抛出一个错误,说“未找到用于打印的 glyphicon”,尽管打印 glyphicon 在输出中可见