不在最后一个 ScoreViewController 上显示分数 Swift

No displaying the score on the last ScoreViewController Swift

我的 segue 函数有问题,我试图将最终分数传递给第二个视图,但没有显示在标签上这就是我的 segue 函数:

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let destinationScore : ScoreViewController = segue.destinationViewController as! ScoreViewController

    destinationScore.scoreBoard?.text = String(finalScore)
    NSLog(String(finalScore))
}

这是第二个视图控制器。

    @IBOutlet weak var scoreBoard: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()


}

PS: 我的 NSLog 在终端上显示最终分数,但在标签上没有显示。谢谢

执行prepareForSegue时,ScoreViewController的内容(包括视图和子视图)还没有加载。因此,当您设置标签的值时,scoreBoard 标签为零。因此 scoreBoard 标签无法显示您的分数。

要解决此问题:

  • 最好在ScoreViewController中添加属性var score: String,然后在viewDidLoad函数中为label赋值

  • 在 prepareForSegue 中,分配分数 属性 而不是 scoreBoard 标签。