隐藏后退按钮后的导航栏

问题描述:

点击后退按钮后我遇到了问题。隐藏后退按钮后的导航栏

我有一个嵌入在带有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而不是在代码中,则问题不会出现。

任何想法解决它?

+0

不知道你是否可以试试这个? self.navigationController?.hidesBarsOnTap = false?我的猜测可能是任何原因设置为true,当你点击imageView时,它可能会隐藏:)只是一个猜测:) –

我刚刚得到它!

我意识到,在视图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