gpt4 book ai didi

ios - 以编程方式创建 ViewController 时,如何将其 View 设置为 SKVIew 类型?

转载 作者:行者123 更新时间:2023-12-02 01:10:29 24 4
gpt4 key购买 nike

我正在 XCode 上开发 iOS 游戏。我有几个 SKScene,每个 SKScene 都与一个 UIViewController 类关联。因此,在每个 View Controller 的 viewDidLoad 中,我创建

SKView *skView = (SKView *)self.view
SKScene * scene = [whateverSKScene sceneWithSize:skView.bounds.size]
[skView present scene]

我想避免使用 Storyboard。但是,当我将ViewController从第一个 View Controller 呈现到下一个 View Controller 时,应用程序在“[skView当前场景]”行崩溃,因为它认为新 View Controller 的 View 仍然是UIView('-[UIView PresentScene:]:发送了无法识别的选择器例如)。

我该如何解决这个问题?具体来说,当创建第二个 View Controller (以编程方式)时,如何将其 View 更改为 SKview 而不是 UIview 类型?(我应该注意,我希望场景与 View Controller 成 1:1,因为几乎所有场景都是弹出窗口,例如游戏中弹出的暂停菜单或弹出的设置等)

最佳答案

尝试在自定义 ViewController 上实现 loadView 方法,如下所示:

override func loadView() {
self.view = SKView(frame: CGRect(x: 0, y: 0, width: 320, height: 480))
}

这是 Apple 文档中的说明:

This is where subclasses should create their custom view hierarchy if they aren't using a nib. Should never be called directly.

关于ios - 以编程方式创建 ViewController 时,如何将其 View 设置为 SKVIew 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31085728/

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