2016-10-31 2 views
0

В нашем методе применения AppDelegate мы доступ к контроллеру вида корня:Доступ контроллер представления корня в AppDelegate запуск

let splitViewController = self.window!.rootViewController as! UISplitViewController 
.... set variables on splitViewController 

Затем после успешного входа в системе мы перенаправлять на контроллер представления корня:

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let controller = storyboard.instantiateViewController(withIdentifier: "Home") as UIViewController 
self.present(controller, animated: true, completion: nil) 

Но кажется, что этот процесс входа в систему уничтожает переменные, которые были установлены на шаге #a. Предположительно, как на шаге #b мы воссоздаем контроллер. Как мы можем перенаправить, не уничтожая переменные, установленные в #a?

+0

Это означает, что вы хотите изменить контроллер корневого представления при успехе входа в систему? –

+0

Я просто хочу инициализировать контроллер корневого представления при запуске. И затем перенаправите его после входа в систему. –

+0

Если его rootViewcontroller почему вам нужно перенаправить ... Поскольку вы обращаетесь к splitViewController как rootViewController, я думаю, что его набор в storyboard.App загружает splitViewController при запуске. –

ответ

0

Мы следовали за приближением переключения контроллера корневого представления, когда это необходимо. Мы запускаем приложение, и если пользователь не зарегистрирован, мы устанавливаем корень в LoginViewController. После входа в систему мы вернем корневой каталог UISplitViewController. Решение от https://stackoverflow.com/a/25979945/47281

Смежные вопросы