首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >返回swift 3 Spritkit中的上一个视图时出错

返回swift 3 Spritkit中的上一个视图时出错
EN

Stack Overflow用户
提问于 2017-05-03 15:08:32
回答 1查看 66关注 0票数 4

当我从我的菜单场景切换到我的gamescene时,它工作得非常好。但是,当我试图回到过去的时候,却是一场灾难。我得到:在展开可选值时意外发现nil。返回的代码是:

代码语言:javascript
复制
let menuscene = MenuScene(size: self.size)
menuscene.scaleMode = scaleMode
self.view?.presentScene(menuscene)

它说错误来自的代码是:

代码语言:javascript
复制
PlaygamebtnNode = self.childNode(withName: "PlaygamebtnNode") as! SKSpriteNode
NamelblNode = self.childNode(withName: "NamelblNode") as! SKLabelNode

这很奇怪,因为当游戏启动时,它可以使用以下代码。错误必须来自视图/场景中的更改。入口MenuScene类的代码是:

代码语言:javascript
复制
import SpriteKit
import GameplayKit

class MenuScene: SKScene {
    var PlaygamebtnNode:SKSpriteNode!
    var NamelblNode:SKLabelNode!

    override func didMove(to view: SKView) {

        PlaygamebtnNode = self.childNode(withName: "PlaygamebtnNode") as! SKSpriteNode
        NamelblNode = self.childNode(withName: "NamelblNode") as! SKLabelNode


        PlaygamebtnNode.texture = SKTexture(imageNamed: "Playgamebtn")
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

        let touch = touches.first

        if let location = touch?.location(in: self){
            let nodesArray = self.nodes(at: location)

            if nodesArray.first?.name == "PlaygamebtnNode" {
                let transition = SKTransition.flipHorizontal(withDuration: 0.5)

                let nextScene = GameScene(size: self.size)
                self.view?.presentScene(nextScene, transition: transition)
            }
        }
    }
}

在展开可选值问题时,这不是一个普通的找到nil的原因,因为在我尝试返回菜单之前,它不会显示此错误。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43753394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档