gpt4 book ai didi

ios - 如何返回 SignIn ViewController

转载 作者:行者123 更新时间:2023-11-29 12:16:19 27 4
gpt4 key购买 nike

当用户启动应用程序时,我会检查身份验证状态,并显示不同的 ViewControler

Logged in -> Main ViewController -> Will pushViewController or presentViewController according to user action

Need Log in -> SignIn ViewController -> Main ViewController -> Will pushViewController or presentViewController according to user action

我的问题是当用户想要注销时如何返回到 SignIn ViewController。

方法一:

Current ViewController -> presentViewController/pushViewController SignIn ViewController

问题:以前的 ViewController 仍在内存中

方法二:

Current ViewController -> popToRootViewControllerAnimated -> presentViewController/pushViewController SignIn ViewController

问题:如果用户之前登录过,RootViewController将成为Main ViewController,我们无法通过该方法释放Main ViewController。

方法三:

[[[[UIApplication sharedApplication] delegate] window] setRootViewController:signinNavigationController];

问题:没有动画,看起来以前的 ViewController 仍在内存中。

最佳答案

您可以在 Storyboard中使用 Unwind segue。有关详细信息,请参阅此链接:http://spin.atomicobject.com/2014/10/25/ios-unwind-segues/

以编程方式,当您按下注销按钮时调用 appDelegate 函数:

func showLoginController() {
//For Story board use this line
var loginController:LoginViewController = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()).instantiateViewControllerWithIdentifier("loginViewControllerIdentifier") as! LoginViewController
//for xib file use this line
var loginController:LoginViewController = UINib(nibName: "loginViewController", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as? LoginViewController

AppDelegate.sharedAppDelegate().window?.rootViewController = loginController
}

关于ios - 如何返回 SignIn ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31915827/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com