Swift:无法解除模态呈现的LoginViewController

时间:2015-07-20 18:51:03

标签: ios swift ios9

当SplitViewController加载时,我正在显示登录屏幕。成功登录后,我需要返回父视图控制器。不知何故解雇对我不起作用。这是代码:

ParentViewController:

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

    override func viewDidLoad() {
        super.viewDidLoad()

    }

Child ViewController:

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

解雇部分永远不会奏效。它只挂在登录屏幕上。

2 个答案:

答案 0 :(得分:1)

请尝试以下方法之一:

1)删除自我。只保留dismissViewControllerAnimated(true,completion:nil)

或删除自我。并使它:

2)presentsViewController.dismissViewControllerAnimated(true,completion:nil) 或删除自我。并尝试:

3)presentsViewController.dismissViewControllerAnimated(true,completion:nil)

答案 1 :(得分: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名称来实例化新的视图控制器。