Reputation: 491
Problem : I am trying to get the handle to navigation controller in my viewcontroller but it always returns nil, below is my code
Hierarchy : AppDelegate -> MainStoryboard -> nav Drawer -> TestingStoryboard -> testing
From Navigation Drawer i open the viewControl as below :
self.openNewStoryBoard(storyBoard: "testingone", scene: "initial")
func openNewStoryBoard(storyBoard:String, scene:String){
let storyboard = UIStoryboard(name: storyBoard, bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: scene) as UIViewController
self.present(controller, animated: true, completion: nil)
}
I have a navigationcontroller in my "testingone" storyboard which connects to a viewContorller "initial" via a relationship - "root view controller " to "viewController", connected this to testtingone class
In the code(testingOne) class i am trying to get the handle to navigationcontroller as below :
self.rootNav = self.navigationController!
But it always ends up nil
Upvotes: 0
Views: 1197
Reputation: 3760
By directly presenting your view controller, you're bypassing the navigation controller all together. Thats why you're getting nil
when calling self.navigationController
. You should present your navigation controller instead.
To do that, in your story board simply set the Storyboard ID of the navigation controller to initial
instead of the view controller.
Upvotes: 0