gpt4 book ai didi

swift - 从 SKScene 移动到 ViewController

转载 作者:行者123 更新时间:2023-11-28 06:03:43 25 4
gpt4 key购买 nike

我想在触摸 SKSpriteNode 时从我的 SKScene 移动到 View Controller ,并在触摸 时返回 SKScene >UI 按钮。它正在从 View Controller 到 SKScene 工作,也从其他方式工作,但只是第一次。当我回到我的场景并再次移动到 View Controller 时(第二次),我可以听到音乐,它会打印 viewDidLoad 中的所有内容,但它不会显示 UI元素。我忽略了这个场景,所以这可能不是问题所在。

这是从场景回到 View Controller 的代码。

let currentViewController:UIViewController = UIApplication.shared.keyWindow!.rootViewController!        
currentViewController.present(ViewController(), animated: false, completion: nil)

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier :"VC")
let currentViewController:UIViewController = UIApplication.shared.keyWindow!.rootViewController!

currentViewController.present(viewController, animated: false, completion: nil)

最佳答案

将与currentViewController相关的代码替换为:

self.view?.window?.rootViewController?.present(viewController, animated: true, completion: nil)

它应该可以工作。您还可以在 Storyboard 中创建一个 segue 并像这样调用它:

self.view?.window?.rootViewController?.performSegue(withIdentifier: "VC", sender: self)

编辑:

我现在已经在我的一个应用程序上尝试了下一个解决方案并且它有效:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "VC")
vc.view.frame = rootViewController.view.frame
vc.view.layoutIfNeeded()

UIView.transition(with: window, duration: 0.3, options: .transitionFlipFromRight, animations:
{
window.rootViewController = vc
}, completion: { completed in
// maybe do something here
})

对我来说它奏效了,我希望它能解决你的问题:)

关于swift - 从 SKScene 移动到 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48834981/

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