Ios 在GameSecene()中从GameViewController()调用布尔值时,它将赢得';不要更新我的值

Ios 在GameSecene()中从GameViewController()调用布尔值时,它将赢得';不要更新我的值,ios,swift,Ios,Swift,我在游戏主屏幕上的GameViewController中有一个按钮: var gameScene: GameScene! override func viewDidAppear(animated: Bool) { gameScene = GameScene() } @IBAction func butPressed(sender: UIButton) { gameScene.buttonPressed = true println("Pressed from Game

我在游戏主屏幕上的GameViewController中有一个按钮:

var gameScene: GameScene!

override func viewDidAppear(animated: Bool) {
    gameScene = GameScene()
}

@IBAction func butPressed(sender: UIButton) {
    gameScene.buttonPressed = true
    println("Pressed from GameViewController")
}
但当我从GameSecene()更新方法执行此操作时:

override func update(currentTime: CFTimeInterval) {

    if (buttonPressed == true) {

        println("Pressed from GameScene")

        buttonPressed = false
    }
}
我永远无法将变量更改为true。如果我
println(“buttonPressed”)
from update(),它总是保持为false。但是,如果我在iAction中打印按钮,它将显示为true。GameViewController()中的变量change不会更改GameSecene()中update()中的布尔值。为什么?


请帮助我

尝试使用此代码创建新类

class Data {
    struct gameScene {
        static var ButtonPressed:Bool = false 
    }
}
然后对代码进行一些更改

var gameScene: GameScene!

override func viewDidAppear(animated: Bool) {
    gameScene = GameScene()
}

@IBAction func butPressed(sender: UIButton) {
    Data.gameScene.buttonPressed = true
    println("Pressed from GameViewController")
}

override func update(currentTime: CFTimeInterval) {

    if (Data.gameScene.buttonPressed == true) {

        println("Pressed from GameScene")

        Data.gameScene.buttonPressed = false
    }
}
您可以使用此代码在项目中的任何位置调用此变量

Data.gameScene.buttonPressed

您在GameViewController中创建的游戏场景是否与执行
update
方法的游戏场景相同?