当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)
解雇部分永远不会奏效。它只挂在登录屏幕上。
答案 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名称来实例化新的视图控制器。