【问题标题】:Segue from GameScene to a viewController Swift 3从 GameScene 转到 viewController Swift 3
【发布时间】:2016-10-29 22:05:52
【问题描述】:

我需要从 GameScene 到 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) 
        }
         ...

在我的 GameScene.swift 中我添加了

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

    ...

还有

func returnToMainMenu(){

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

}

所以我的问题是,当我声明 -scene.viewController = self - 我收到一条错误消息,提示“'SKScene' 类型的值没有成员 'viewController'”。我该怎么做才能解决这个问题?

【问题讨论】:

    标签: ios swift uiviewcontroller sprite-kit swift3


    【解决方案1】:

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

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

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

    【讨论】:

    • 出于好奇。什么是退出转场?
    • 您可以在此 SO answer 中阅读有关退出序列的信息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多