NSGenericException', reason: 'Push segues can only be used when the source controller is managed by an instance of UINavigationController-Collection of common programming errors

so I’m making an app with 5 view controllers, the first is embedded in a UINavigationController and the segue between the first 4 view controllers works fine. However introducing a 5th View Controller has broken this, and I’m getting the error

Terminating app due to uncaught exception 'NSGenericException', reason: 'Push segues can only be used when the source controller is managed by an instance of UINavigationController.'

I havent done anything differently with this 5th view controller, its just a standard ViewController with an image view and a label, and all of my segues are called by ctrl dragging buttons in the storyboard. Does anybody have any idea whats causing this?

Thanks

  1. add Navigation Controller to your initial view

    1. Select the initial view
    2. Go To Editor–> Embed In –> Navigation Controller.
  2. Set UINavigationcontroller as Initial View controller (Initial Scene) in StoryBoard.

  3. This is most likely because your push segue from the button or whatever is pointing to a view controller not the navigation view controller your view controller inherits. So, you have to point the segue to the navigation controller.

    Hope this helps.

  4. Try use a modal instead of a push segue.

  5. You just need to embed a Navigation Controller into your Source View Controller ( The one initial view, not the view you are pushing for ) . This can be done by selecting the Source View Controller and Go To Editor–> Embed In –> Navigation Controller.

    If you think that the Navigation Bar that the Navigation Controller has done . Simply select the Navigation Controller , In the “Show the Attributes Inspector” disable the Shows Navigation Bar.

  6. If your application has navigation controller as root view controller of window ,select storyboard file and then select the corresponding navigation controller , in Simulated Metrics select Is Initial View Controller checkbox. This worked for me. Hope this helps.