Ali Alebrahim
Ali Alebrahim

Reputation: 647

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?

Upvotes: 4

Views: 2871

Answers (2)

Vishal Sonawane
Vishal Sonawane

Reputation: 2693

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;

Upvotes: 2

AtWork
AtWork

Reputation: 1293

May be this can help:

[self.window addSubview:secondNavigationController.view];

Add the view of second navigation controller in the window.

Upvotes: 0

Related Questions