gpt4 book ai didi

ios - 注销并清除当前 VC 以下的 VC

转载 作者:行者123 更新时间:2023-12-01 16:14:46 29 4
gpt4 key购买 nike

我们正在寻求改变用户退出我们应用程序的方式。为了做到这一点,我们要关闭当前 VC 下面的所有 VC,并将另一个 VC 作为根 VC。现在我们正在这样做,我相信这不会从内存中消除下面的任何 VC。

let viewController = storyboard?.instantiateViewController(withIdentifier: "SignIn")
if let unwrappedViewController = viewController {
self.present(unwrappedViewController, animated: true, completion: {})
}

问题是我们想要放在上面的 VC 没有嵌入到导航 Controller 或标签栏 Controller 中。我们如何解除 VC 并将新 VC 设置为主 VC,就好像用户第一次打开应用程序而之前没有登录一样?我们也确实希望使用该事件正常的任何动画来对过渡进行动画处理(模态动画很好)。我已经阅读了很多不同的方法,但我想知道哪种方法是最佳实践,应该专门实现,消除所有 VC 并将一个不在 Nav Controller 中的新 VC 放在顶部。

最佳答案

如果您可以访问UIWindow该应用程序,您可以设置其rootViewController属性到您的登录 View Controller ,有效地删除所有当前 View Controller 并添加登录 View Controller 。这是一个例子:

guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }

// Should remove all subsequent view controllers from memory.
appDelegate.window?.rootViewController.dismiss(animated: true, completion: nil)

// Set the root view controller to a new instance of the sign in view controller.
appDelegate.window?.rootViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "SignIn")

关于ios - 注销并清除当前 VC 以下的 VC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44687016/

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