Ali Alebrahim Ali Alebrahim - 3 months ago 9
Swift Question

Removing NavigationController Programmatically

the application contains more than one navigation controller. (example below)

NavigationController1 ----> ViewController1 ---> TabBarController -->
NavigationController2 ----> ViewController2


whenever ViewController1 willDisappear i remove the NavigationController using
NavigationController.view.removeFromSuperview


the problem im facing whenever ViewController2 loads. i just see a black screen nothing else. what might the problem be?

and what is the best way to remove the navigationController?

Answer

The black screen is nothing but UIWindow. When you are removing NavigationController , the windows doesn't have any NavigationController. So you will have to set NavigationController for window as soon as you remove your first NavigationController.

You can try like this:

 let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

 appDelegate.window?.rootViewController = YOUR_NAVIGATION_CONTROLLER_OBJECT;
Comments