我一直在尝试将变量传递给另一个场景。以前,当我使用单视图应用程序时,我可以使用override func prepareForSegue(segue:UIStoryboardSegue,sender:AnyObject?)传递变量,并且没有问题。现在,我将游戏与SpriteKit一起使用,并且无法使用它说方法不会覆盖其超类中的任何方法的函数。当我删除覆盖时,它不会给我任何错误,但不会传递变量。我还使用了最新的Xcode版本,而不使用Main.storyboard
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var DestResults : GameOver = segue.destinationViewController as!GameOver
DestResults.gameOverScore = self.score
}
根据评论,我可以判断出您的超类不是UIViewController。SKScene没有实现prepareForSegue,因此您不能在SKScene中使用prepareForSegue。
您可以在类声明之外声明结构。像这样。
struct Variables {
static var aVariable = //Whatever you want it to equal
}
您可以像这样访问变量。
Variables.aVariable
您可以尝试在过渡到下一个场景之前立即编辑变量。然后在上面的下一个场景中访问它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句