【发布时间】:2019-09-26 16:30:25
【问题描述】:
我正在制作一个游戏,我从主屏幕转到 ArcadeViewController,它会加载 SKScene,并将之前的 VC 保存为 prevVC。
我使用故事板中创建的转场在 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
}
}
它有助于减少创建的副本数量,但仍然有一些。
如何删除重复的视图?
【问题讨论】:
-
你需要使用一种特殊的 segue,称为 unwind segue:stackoverflow.com/questions/12561735/…
标签: swift storyboard viewcontroller skscene