Deinit UITabBarController после представления нового ViewController

У меня есть приложение, в котором пользователи могут войти в систему. Если пользователь запускает приложение и уже вошел в систему, то rootViewController устанавливается на мой пользовательский UITabBarController, но когда пользователь не вошел в систему, rootViewController устанавливается на LoginVC (Контроллер просмотра). Моя проблема в том, что когда пользователь выходит из системы, должен быть представлен LoginVC, а TabBar должен быть деинициализирован.

Я пытался:

self.tabBarController?.dismiss(animated: true, completion: {
    self.tabBarController?.present(LoginVC(), animated: true, completion: nil)
})

И тому подобное... Я могу представить LoginVC, но когда я вызываю self.tabBarController?.dismiss, LoginVC закрывается вместо TabBarVC.

Любая помощь будет принята с благодарностью


person Phyber    schedule 28.08.2017    source источник


Ответы (1)


Лучше просто установить rootViewController на LoginVC. Ссылка на UITabBarController будет потеряна, и он будет деинициализирован.

Вызов dismiss на VC не закрывает этот VC. Он отклоняет VC, который он представляет:

https://developer.apple.com/documentation/uikit/uiviewcontroller/1621505-dismiss

Закрывает контроллер представления, который был представлен модально контроллером представления.

person Lou Franco    schedule 28.08.2017
comment
Есть ли способ анимировать этот переход? - person Phyber; 28.08.2017
comment
stackoverflow.com/questions/7703806/ - person Lou Franco; 28.08.2017