2016-05-11 6 views
0

У меня есть 3 контроллера вида: 1) LoginViewController. 2) MainViewController. 3) LogoutViewController.Root View Controller и разматывает segues?

Я использую NSUserDefaults для хранения имени пользователя при его входе в LoginViewController.

Тогда в AppDelegate Я использую этот метод:

self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 
    let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    let UserData = NSUserDefaults.standardUserDefaults() 
    if (UserData.stringForKey("Username") != nil) { 
     let initialViewController = storyboard.instantiateViewControllerWithIdentifier("MainViewController") as! MainViewController 
     self.window?.rootViewController = initialViewController 
    } else { 
     let initialViewController = storyboard.instantiateViewControllerWithIdentifier("LoginViewController") as! LoginViewController 
     self.window?.rootViewController = initialViewController 
    } 

Итак, когда есть Имя пользователя хранится в NSUserDefaults, приложение перейти к главной View Controller и пропустить первый при запуске приложения.

в LogoutViewController Я использовал unind segue для LoginViewController, что означает, что у меня есть кнопка выхода из системы, и я использовал unind segue для входа в LoginViewController. Это отлично работает, когда приложение запускается из LoginViewController, но не из MainViewController.

Однако, я хочу, чтобы перейти к LoginViewController, когда кнопка выхода из системы нажата, запускается ли она с LoginViewController или MainViewController и освобождает все остальные ViewControllers из памяти. Как это может быть?

ответ

0

В вашем случае LoginViewController как корневой вид вызывается первым при запуске приложения. Поэтому, когда вы выходите из системы, вы должны перейти к корневому контроллеру представления.

0

Вам необходимо установить LoginViewController как rootViewController при выходе из системы, а не разворачивать segue.

let initialViewController = storyboard.instantiateViewControllerWithIdentifier("LoginViewController") as! LoginViewController 
UIApplication.sharedApplication().keyWindow?.rootViewController = initialViewController