我有2个UIViewControllers,一个启动GameScene,另一个应该显示高分,如下所示。问题是我的第二个UIViewController不想显示udpated高分。它只是一直显示0。 有谁知道问题是什么?我尝试使用viewDidLoad以及viewWillAppear但它们都不起作用。
override func viewDidLoad() {
super.viewDidLoad()
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 21))
label.center = CGPoint(x: 160, y: 285)
label.textAlignment = .center
label.text = String(GameScene().highScore)
self.view.addSubview(label)
}
在GameScene中,我已经将highScore声明为:
var highScore = Int()
并在gameOver函数中使用:
if score > highScore {highScore = score}
感谢
答案 0 :(得分:0)
label.text = String(GameScene().highScore)
这条线表明GameScene是一个静态类。更不用说了,你根本无法以这种方式访问变量。
您需要在视图控制器之间传递数据以在场景之间传递数据。您可以使用以下三个选项之一传递数据: