Удаление NavigationController программно

Приложение содержит более одного контроллера навигации. (пример ниже)

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

всякий раз, когда ViewController1 будет исчезать, я удаляю NavigationController, используяNavigationController.view.removeFromSuperview

проблема, с которой я сталкиваюсь всякий раз, когда ViewController2 загружается. я просто вижу черный экран больше ничего. в чем может быть проблема?

и каков наилучший способ удалить навигационный контроллер?

Ответы на вопрос(2)

Решение Вопроса

Черный экран - ничегоUIWindow, Когда вы удаляете NavigationController, окна не имеют никакого NavigationController. Поэтому вам нужно будет установить NavigationController для окна, как только вы удалите свой первый NavigationController.

Вы можете попробовать вот так:

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

 appDelegate.window?.rootViewController = YOUR_NAVIGATION_CONTROLLER_OBJECT;
 Vishal Sonawane04 авг. 2016 г., 15:33
Нет необходимости устанавливать из приложения делегата. Для этого вы можете использовать объект AppDelegate. Пожалуйста, смотрите мой обновленный ответ.
 Vishal Sonawane04 авг. 2016 г., 15:40
Проверьте отредактированный ответ сейчас.
 Ali Alebrahim04 авг. 2016 г., 15:28
поэтому всякий раз, когда я удаляю первый контроллер навигации, мне нужно правильно установить окно в файле appDelegate?
 Ali Alebrahim04 авг. 2016 г., 15:36
я получаю эту ошибку при попытке добавить ваш код, мой друг: не могу присвоить свойству: 'appDelegate' является неизменным

Может быть, это может помочь:

[self.window addSubview:secondNavigationController.view];

Добавьте в окно вид второго навигационного контроллера.

Ваш ответ на вопрос