返回按钮后隐藏的导航栏
Posted
技术标签:
【中文标题】返回按钮后隐藏的导航栏【英文标题】:Navigation bar hidden after back button 【发布时间】:2016-04-22 21:52:37 【问题描述】:点击后退按钮后出现问题。
我有一个嵌入在带有 imageView 的 NavigationController 中的第一个视图。 使用以下代码自定义导航栏:
override func viewDidLoad()
super.viewDidLoad()
// color the navigation bar and text
self.navigationController?.navigationBar.barTintColor = UIColor(red: 0, green: 0.24, blue: 0.45, alpha: 1)
self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : UIColor.whiteColor()]
当用户点击 imageView 时,会执行以下代码:
self.performSegueWithIdentifier("view2", sender: self)
这是一个show(push)
segue。
当用户在view2中点击Back button
时,它返回到第一个视图但导航栏已经消失了!
我认为它被某些东西掩盖了,因为我可以在调试期间通过单击 Debug View Hierarchy
看到它。
最后一点,如果我用一个简单的条形按钮替换 imageView 点击操作以转到 view2 并在情节提要而不是在代码中执行 segue,则不会出现问题。
有解决办法吗?
【问题讨论】:
不确定你能不能试试这个?? self.navigationController?.hidesBarsOnTap = false ??我的猜测可能是由于任何原因它被设置为 true,当你点击 imageView 时它可能会隐藏:) 只是一个猜测:) 【参考方案1】:我刚收到!
我意识到在view2中,我用代码使导航栏半透明:
override func viewDidLoad()
super.viewDidLoad()
// Set the navigation bar translucent
navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.translucent = true
所以要修复这个bug,只需在视图消失之前移除半透明属性即可:
override func viewWillDisappear(animated: Bool)
navigationController?.navigationBar.translucent = false
希望有一天能对某人有所帮助:)
【讨论】:
【参考方案2】:放置此代码:
// color the navigation bar and text
self.navigationController?.navigationBar.barTintColor = UIColor(red: 0, green: 0.24, blue: 0.45, alpha: 1)
self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : UIColor.whiteColor()]
在视图中会出现
【讨论】:
刚刚测试过,但是导航栏在返回按钮后仍然隐藏。以上是关于返回按钮后隐藏的导航栏的主要内容,如果未能解决你的问题,请参考以下文章