我需要从GameScene到UIViewController制作一个segue。到目前为止,我的代码如下:
在GameViewController.swift中我添加了:
if let view = self.view as! SKView? {
if let scene = SKScene(fileNamed: "GameScene") {
scene.scaleMode = .aspectFill
scene.viewController = self
view.presentScene(scene)
}
...
并在我的GameScene.swift中添加了
class GameScene: SKScene, SKPhysicsContactDelegate {
var viewController: UIViewController?
...
以及
func returnToMainMenu(){
self.viewController.performSegueWithIdentifier("push", sender: viewController)
}
所以我的问题是,当我说 - scene.viewController = self - 我得到一个错误,上面写着“类型'SKScene'的值没有成员'viewController'”。我该怎么做才能解决这个问题?
答案 0 :(得分:2)
问题是viewController
属性是在GameScene
中声明的,但是在创建场景时它的类型为SKScene
。修复它的简单方法是将场景初始化为GameScene
,然后您就可以访问GameScene
中声明的成员。
if let scene = GameScene(fileNamed: "GameScene") {
// Other code
scene.viewController = self
}
此外,您应该在返回主菜单时尝试退出序列,但那是另一个主题。