隐藏后退按钮后的导航栏
问题描述:
点击后退按钮后我遇到了问题。隐藏后退按钮后的导航栏
我有一个嵌入在带有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。
当用户在视图2中点击Back button
时,它将返回到第一个视图,但导航栏消失了!
我认为它被某些东西掩盖,因为我可以在调试过程中通过点击Debug View Hierarchy
来看到它。
最后一点,如果我用一个简单的bar按钮替换imageView tap action并转到view2,并在故事板中执行segue而不是在代码中,则问题不会出现。
任何想法解决它?
答
我刚刚得到它!
我意识到,在视图2,我做导航栏半透明的代码:
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
希望有一天能帮助别人:)
答
将此代码:
// 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()]
在viewWillAppear中
+0
刚刚测试过它,但导航栏仍然隐藏后退按钮后。 – Thomi
不知道你是否可以试试这个? self.navigationController?.hidesBarsOnTap = false?我的猜测可能是任何原因设置为true,当你点击imageView时,它可能会隐藏:)只是一个猜测:) –