将更新的变量传递给rootviewcontroller

时间:2017-08-22 11:43:37

标签: ios swift sprite-kit

我有一个根视图控制器,它使用SKLabelNode在场景上显示分数。您可以从此根导航到第二个视图控制器,通过玩短游戏可以改变分数。当我弹回到根视图控制器时,分数不会更新。

我已经使用协议/委托成功连接了两个视图控制器,因此分数从第二个视图控制器传递到根。 问题是根控制器的游戏场景中存在一个不会更新的变量。

我已尝试在场景文件(TheSceneIMade)中执行此操作:

var scoreLabel: SKLabelNode! // this is a class variable

override func didMove(to view: SKView) {
    // among other things in this function...
    scoreLabel = fgNode.childNode(withName: "score_number") as! SKLabelNode
}

只有一次调用“didMove”它是根视图控制器,其他所有内容都会弹出并弹出。

在场景的视图控制器文件中,我这样做了:

var sceneExample: MyScene? // this is a class variable

override func viewDidLoad() {
    sceneExample = MyScene(fileNamed: "TheSceneIMade")
}

然后我试图在viewWillAppear中更改scoreLabel.text,但没有任何工作。

如何从自己的视图控制器访问和更新场景变量?

0 个答案:

没有答案