Отключить все виды из NavigationViewController - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть следующие настройки:

AuthVC ||Navigator => TabBarContr => MainVC / SecondVC

                               => SettingsVC

В моем AuthVC я проверяю, вошел ли пользователь в систему. Если да, я просто открываю свой класс Navigator, который является NavigationViewController и который имеетмой "TabBarContr" в качестве пользователя root.Там у меня есть два TabBarItems.На панели навигации моего TabBarContr у меня есть кнопка «Настройки», которая открывает мой SettingsVC.Там у меня есть кнопка logout.Когда я нажимаю, я выхожу из системы и хочу уничтожить все, кроме моего authVC -Контроллера, чтобы в этот момент я мог снова открыть свой VC для входа в систему.

Что я делаю: Когда нажата logout, я возвращаю ссылкуот моего SettingsVC до моего TabBarContr.Там я звоню dismissViewController.

Я думал, что это сработает, потому что я действительно вернусь к своему AuthVC.Но после повторного входа в систему он открывает мой TabBarContr, и у меня возникают некоторые проблемы с загрузкой, потому что некоторые объекты все еще живут из моего предыдущего сеанса входа в систему.

Так что мне нужно сделать, чтобы действительно убить все, кроме AuthVC?

Ответы [ 4 ]

0 голосов
/ 13 ноября 2018

Попробуйте это

let maiStoryBoard = UIStoryboard(name: "Main", bundle: nil) //Storyboard in which AuthVC lies

let authVC = mainStoryBoard.instantiateViewControllerWithIdentifier("AuthVC") as! AuthVC
 let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
 appDelegate.window?.rootViewController = authVC
0 голосов
/ 13 ноября 2018

Или вы можете установить контроллер корневого представления для окна следующим кодом в ваших настройках ВК:

//Did tap logout button
self.view.window?.rootViewController = AuthVC

Если это не поможет, отправьте, как именно вы показываете NavigationViewController после AuthVC.

0 голосов
/ 13 ноября 2018

"... Но после повторного входа в систему он открывает мой TabBarContr, и у меня возникают некоторые проблемы с загрузкой ..."

Если я вас понялудаление всех представлений, но ваша проблема в том, что ваши контроллеры представлений не перезапускаются должным образом.У вас может быть какая-то сохраненная ссылка, поэтому вы повторно используете объекты vc, а затем у вас возникает проблема с представлением их во второй раз.Попробуйте просмотреть, какие ссылки не публикуются, когда вы закрываете / pop.

0 голосов
/ 13 ноября 2018

установите AuthVC в качестве rootViewController вашего окна.

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

создайте экземпляр AuthVC из раскадровки и назначьте его rootViewController окна

appDelegate.window?.rootViewController = AuthVC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...