2015-07-20 2 views
1

Как загружается SplitViewController, я показываю экран входа в систему. При успешном входе в систему мне нужно вернуться к контроллеру родительского представления. Почему-то увольнение не работает для меня. Вот код:Swift: не удалось уволить модально представленный LoginViewController

ParentViewController:

override func viewDidAppear(animated: Bool) { 
     super.viewDidAppear(animated) 
     if !appDelegate.loggedIn { 
      self.performSegueWithIdentifier("loginScreen", sender: self) 
     } 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

    } 

Детский ViewController:

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
appDelegate.loggedIn = true 
self.dismissViewControllerAnimated(true, completion: nil) 

Увольнение часть никогда не работает. Он просто зависает на экране входа в систему.

ответ

1

Попробуйте использовать одно из следующего:

1) удалите себя. сохраняйте только отклонениеViewControllerAnimated (true, завершение: ноль)

или удалите себя. и сделайте это:

2) presentingViewController.dismissViewControllerAnimated (true, completion: noil) или удалите себя. и попробовать:

3) presentedViewController.dismissViewControllerAnimated (правда, завершение: ноль)

1

Попробуйте это в вашем контроллере родительского вида:

override func viewDidAppear(animated: Bool) { 
     super.viewDidAppear(animated) 
     if !appDelegate.loggedIn { 
      let loginVC: UIViewController = self.storyboard!.instantiateViewControllerWithIdentifier("LoginViewController") as UIViewController 
      loginVC = UIModalTransitionStyle.CoverVertical 
      self.parentViewController?.presentViewController(loginVC, animated: true, completion: nil) 
     } 
} 

Вы инстанцирование нового контроллера представления своего собственного имя а не по имени segue.

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