the application contains more than one navigation controller. (example below)
NavigationController1 ----> ViewController1 ---> TabBarController -->
NavigationController2 ----> ViewController2
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;