Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从游戏场景切换到viewController Swift 3_Ios_Swift_Uiviewcontroller_Sprite Kit_Swift3 - Fatal编程技术网

Ios 从游戏场景切换到viewController Swift 3

Ios 从游戏场景切换到viewController Swift 3,ios,swift,uiviewcontroller,sprite-kit,swift3,Ios,Swift,Uiviewcontroller,Sprite Kit,Swift3,我需要从游戏场景切换到UIViewController。到目前为止,我的代码如下: 在GameViewController.swift中,我添加了: if let view = self.view as! SKView? { if let scene = SKScene(fileNamed: "GameScene") { scene.scaleMode = .aspectFill scene.viewController = se

我需要从游戏场景切换到UIViewController。到目前为止,我的代码如下:

在GameViewController.swift中,我添加了:

if let view = self.view as! SKView? {
        if let scene = SKScene(fileNamed: "GameScene") {
            scene.scaleMode = .aspectFill

            scene.viewController = self
            view.presentScene(scene) 
        }
         ...
在我的游戏场景中,我加了一句

class GameScene: SKScene, SKPhysicsContactDelegate {
    var viewController: UIViewController?

    ...
以及

func returnToMainMenu(){

    self.viewController.performSegueWithIdentifier("push", sender: viewController)

}

所以我的问题是,当我state-scene.viewController=self时,我得到一个错误,它说“类型为'SKScene'的值没有成员'viewController'”。如何解决此问题?

问题在于
viewController
属性是在
GameScene
中声明的,但创建场景时,它的类型为
SKScene
。修复此问题的简单方法是将场景初始化为
游戏场景
,然后您可以访问
游戏场景
中声明的成员

if let scene = GameScene(fileNamed: "GameScene") {
    // Other code
    scene.viewController = self
}

另外,返回主菜单时,您应该尝试退出顺序,但这是另一个主题。

出于好奇。什么是退出序列?你可以在这篇文章中阅读关于退出序列的内容