没有在最后一个ScoreViewController Swift上显示得分

时间:2016-09-08 04:35:37

标签: swift label segue viewcontroller

我的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在终端上显示最终得分,但没有在标签上显示。谢谢

1 个答案:

答案 0 :(得分:0)

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

要解决此问题:

  • 您最好在ScoreViewController中添加属性var score: String,然后在viewDidLoad函数中为标签指定文字。

  • 在prepareForSegue中,指定score属性而不是scoreBoard标签。