Swift 在其他视图控制器上保存高分

Swift 在其他视图控制器上保存高分,swift,cocoa-touch,uiviewcontroller,Swift,Cocoa Touch,Uiviewcontroller,我点击一个按钮,得到分数,点击另一个按钮,游戏结束。分数被保存。但是现在我想让它有可能获得高分。如何在第二个视图控制器上获得高分?让第一个视图控制器为ViewController,第二个视图控制器为ViewController\u 2。在ViewController中设置一个名为scores的数组,单击按钮时设置该数组。现在,您需要在ViewController_2中使用Int类型的另一个变量,让它成为score_2,该变量的得分最高 以下是ViewController_2的外观: class

我点击一个按钮,得到分数,点击另一个按钮,游戏结束。分数被保存。但是现在我想让它有可能获得高分。如何在第二个视图控制器上获得高分?

让第一个视图控制器为
ViewController
,第二个视图控制器为
ViewController\u 2
。在
ViewController
中设置一个名为
scores
的数组,单击
按钮时设置该数组。现在,您需要在
ViewController_2
中使用Int类型的另一个变量,让它成为
score_2
,该变量的得分最高

以下是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)
 }
}

读一读,肯定会对你有帮助

保存高分的最佳方法是通过
NSUserDefaults
。这将允许您保存诸如highscore之类的内容,然后在应用程序中随时调用它

let highscore = label.text;
NSUserDefaults.standardUserDefaults().setObject(highscore, forKey: "Highscore")
    NSUserDefaults.standardUserDefaults().synchronize()
在这种情况下,标签中的内容将保存为您的新高分。您需要实现一种方法来确保此分数必须高于您以前的高分才能保存

如果要将其调用到另一个视图控制器,则只需执行以下操作:

        NewLabel.text = NSUserDefaults.standardUserDefaults().stringForKey("Highscore")

我希望这有帮助

我还没写代码,但我在代码中找不到高分。在应用程序中保存分数我已经有了。你能在Xcode项目中发送代码吗:)?我不明白(我是初学者)。第一个视图控制器上的标签也与第二个视图控制器上的分数标签相连,这会影响代码吗?因为它只给出错误。let highscore=label.text给出错误:视图控制器类型没有名为score的成员。(分数所在的标签)。NSUserDefaults.standardUserDefaults().setObject(highscore,forKey:“highscore”)给出了预期的错误声明。哪里需要NewLabel.text=NSUserDefaults.standardUserDefaults().stringForKey(“Highscore”)支架,第一个或第二个视图控制器?