viewController不会更新

时间:2017-05-21 20:20:29

标签: swift uiviewcontroller viewdidload viewwillappear

我有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}

感谢

1 个答案:

答案 0 :(得分:0)

label.text = String(GameScene().highScore)

这条线表明GameScene是一个静态类。更不用说了,你根本无法以这种方式访问​​变量。

您需要在视图控制器之间传递数据以在场景之间传递数据。您可以使用以下三个选项之一传递数据:

  1. 虽然是performSegue()
  2. performSegueWithIdentifier()并在IB中建立连接
  3. 在IB中建立连接并定义操作