我点击一个按钮,得到积分,我点击另一个按钮,游戏结束。分数已保存。但是现在我希望能够获得高分。如何才能在第二个视图控制器上看到高分?
答案 0 :(得分:1)
让您的第一个视图控制器为ViewController
,第二个视图控制器为ViewController_2
。并且在scores
中有一个名为ViewController
的数组,您在单击button
时设置该数组。现在,您需要另一个Int类型ViewController_2
中的变量,让它为score_2
,得分为HighScore。
以下是ViewController_2的外观:
class ViewController_2: UIViewController {
var score_2:Int;
override func viewWillAppear(){
//ScoreLabel.text="High Score : \(score_2)"
}
}
以下是ViewController的外观:
class ViewController: UIViewController {
var scores:[Int];
@IBAction func foo(sender:Button) {
let score:Int=getScore()
scores.append(score)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var destination=segue.destinationViewController as ViewController_2
destination.score_2=maxElement(self.scores)
}
}
了解segues,它一定会对您有所帮助。
答案 1 :(得分:0)
保存高分的最佳方法是NSUserDefaults
。这将允许您保存诸如高分的内容,然后在您的应用程序中随时调用它。
let highscore = label.text;
NSUserDefaults.standardUserDefaults().setObject(highscore, forKey: "Highscore")
NSUserDefaults.standardUserDefaults().synchronize()
在这种情况下,我有标签中的任何内容,然后保存为新的高分。您需要实现一种方法,以确保此分数必须高于您之前的高分才能保存。
如果你想将它调用到另一个视图控制器,你所要做的就是:
NewLabel.text = NSUserDefaults.standardUserDefaults().stringForKey("Highscore")
我希望这会有所帮助