Swift: Force show Navigation Bar in Modal

Camillo picture Camillo · Feb 9, 2015 · Viewed 15.6k times · Source

I have the following Storyboard Segue in my Swift project:

enter image description here

The animation is correct, but there is no navigation bar in the destination view controller. I want to force the destination view controller to have a navigation bar. I tried in the destination view controller:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(true)
    navigationController?.navigationBar.hidden = false
}

Or:

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

But it refuses to show any navigation bar.

How can I perform a vertical segue (like "Cover Vertical") but still display a translucent Navigation bar in the destination view controller?

Edit: My Attributes inspector for the destination view controller:

enter image description here

Answer

fz. picture fz. · Feb 9, 2015

Try to create the Segue to a Navigation controller instead of your view controller. Navigation bars are only shown for view controllers in a navigation stack. In your case, the source view controller seems to be in a navigation stack but not the presented view controller. Try something like this:

enter image description here