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

我在XCode上开发iOS游戏。 我有几个SKScenes,每个都与UIViewController类相关联。 所以在每个视图控制器的viewDidLoad中,我都创建了

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

我想避开故事板。 但是,当我从第一个视图控制器向下一个视图控制器提示ViewController时,应用程序在“[skView当前场景]”行崩溃,因为它认为新视图控制器的视图仍然是UIView(’ – [UIView presentScene:]:无法识别的选择器已发送例如)。

我怎样才能解决这个问题? 具体来说,在创建第二个视图控制器(以编程方式)时,如何将其视图更改为SKview类型而不是UIview? (我应该注意到我希望video控制器的场景是1:1,因为几乎所有这些都是弹出窗口,如游戏弹出的弹出菜单或设置弹出等)

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

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

这就是Apple的文档所述:

这是子类在不使用nib时应创建自定义视图层次结构的位置。 永远不应该直接打电话。