gpt4 book ai didi

ios - 导航栏在第二次和后续出现时隐藏在 View Controller 上

转载 作者:行者123 更新时间:2023-11-29 01:31:09 26 4
gpt4 key购买 nike

我有一个父 TableViewController 和一个子 ViewController,它们都在导航 Controller 的上下文中。我想要发生的是 TableView Controller 从不显示导航栏,而 View Controller 始终显示导航栏。我在每个子类的 viewWillAppear 函数中隐藏和显示导航栏,如下所示:

表格 View Controller :

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(true);
navigationController?.navigationBar.hidden = true
UIApplication.sharedApplication().statusBarHidden=true
}

View Controller :

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

这适用于第一个导航。当我启动应用程序时,父 TableView Controller 隐藏导航栏,当我选择第一个单元格时, subview Controller 尽职地显示导航栏。但是,当我触摸导航栏上的“后退”,然后再次选择该单元格时, View Controller 不再显示导航栏。

有更好的方法吗?

更新 - 根据要求附上 XIB 和 Storyboard 的屏幕截图。请注意,父 TableViewController 没有 XIB。我不相信这些屏幕截图会提供很多见解。尤其是 Storyboard。不幸的是,Xcode 只有 2 个缩放级别:1.太放大了,没用2. 缩小到没用尽管如此,这里有它们:

enter image description here

enter image description here

最佳答案

这应该可以正常工作:当您的 ViewController 出现时,代码应该每次都被执行。尝试使用“打印”来测试是否会发生这种情况。

第一个 View Controller

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(true)
print("viewWillLoad - Table View")
self.navigationController?.navigationBarHidden = false
}

第二个 View Controller

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(true)
print("viewWillLoad - Detail View")
self.navigationController?.navigationBarHidden = true
}

我也会在某些应用程序中使用它。

关于ios - 导航栏在第二次和后续出现时隐藏在 View Controller 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33441998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com