the application contains more than one navigation controller. (example below)
NavigationController1 ----> ViewController1 ---> TabBarController -->
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;
May be this can help:
[self.window addSubview:secondNavigationController.view];
Add the view of second navigation controller in the window.