gpt4 book ai didi

swift - 如何快速删除重复的 VC?

转载 作者:行者123 更新时间:2023-11-30 10:44:29 31 4
gpt4 key购买 nike

我正在制作一个游戏,我从主屏幕转到 ArcadeViewController,它加载 SKScene,并将以前的 VC 保存为 prevVC。

我使用 Storyboard中创建的 Segues 在 VC 之间移动。

问题是,每次我移动到 VC,而不是移动到旧的 VC 时,都会创建一个副本,并且它们都开始同时运行。

当我进入 VC 时,我尝试通过运行以下代码来删除它们:

        override func viewDidAppear(_ animated: Bool) {
UIApplication.shared.keyWindow?.rootViewController = self
self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)
prevVC.reloadViewFromnib()
prevVC.dismiss(animated: false, completion: nil)
UserDefaults.standard.set(0, forKey: "since_The_Last_Ad")

}
extension UIViewController {
func reloadViewFromnib() {
let parent = view.superview
view.removeFromSuperview()
view = nil
parent?.addSubview(view) // This line causes the view to be reloaded
}
}

它有助于减少创建的副本数量,但仍然有一些。

如何删除重复的 View ?

最佳答案

所以解决方案最终是使用正常的segue从GameVC(启动VC)第一次启动ArcadeVC。然后将ArcadeVC设置为rootVC:

   UIApplication.shared.keyWindow?.rootViewController = self

然后使用正常的 segue 返回到 GameVC。将ArcadeVC设置为rootVC后,只需使用正常segue到ArcadeVC形成GameVC,并从GameVC展开到AracdeVC。

关于swift - 如何快速删除重复的 VC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56049219/

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