Trombone0904
Trombone0904

Reputation: 4258

Set Navbar hidden = false don't work

i have 2 ViewController

VC A and VC B

VC A => NavigationBar Hidden = true

VC B => NavigationBar Hidden = false

I make a segue from A => B, but the navgiationbar in VC B is not visible.

i have include the following swift code in vc b:

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

Any ideas?

Upvotes: 3

Views: 1649

Answers (5)

John Cogan
John Cogan

Reputation: 1060

VC A and VC B embedded in Navigation controller here and I have this working.

In VC A i have the following code:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(true)
    navigationController?.setNavigationBarHidden(false, animated: true)
}

and in B I have

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(true)
    navigationController?.setNavigationBarHidden(true, animated: true)
}

works perfectly

Upvotes: 0

Alex Wang
Alex Wang

Reputation: 71

if you are using

self.navigationController?.navigationBar.hidden = true;

use this to show Bar

self.navigationController?.navigationBar.hidden = false;

not to use

self.navigationController?.navigationBarHidden = false;

please check that

Upvotes: 4

Dharmesh Kheni
Dharmesh Kheni

Reputation: 71854

Do it this way:

In your VC A use this code:

override func viewDidLoad() {
    super.viewDidLoad()
    navigationController?.setNavigationBarHidden(true, animated: true)
}

And in VC B use this code:

override func viewDidLoad() {
    super.viewDidLoad()
    navigationController?.setNavigationBarHidden(false, animated: true)
}

Upvotes: 0

Arslan Asim
Arslan Asim

Reputation: 1302

You can do following work around

in your VC A viewWillDisappear

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

    } 

Upvotes: 0

iAhmed
iAhmed

Reputation: 6704

The navigation bar and the tool bar should disappear in the storyboard when you change the segue -- that's normal.

Try checking enter image description here

Following should work with iOS 8 for a particular view

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

To show on all viewControllers place it in viewDidLoad

self.navigationController?.navigationBarHidden = false

Upvotes: 0

Related Questions