私はgameOverViewControllerにのみハイスコアをロードして保存しようとしています。私は正常にsecondViewControllerからgameOverViewControllerにスコアを転送しました。 gameOverViewControllerは、あなたのスコア、ハイスコアを表示し、再試行とメインメニューボタンを持っている画面上の通常のゲームのようなものです。 highScoreLabelをscoreGameOverLabelと同じに設定しようとしましたが、highScore intは0のままで、gameOverScoreと等しくありません。私しようとしています: ロード、セカンドビューコントローラでハイスコアを保存
var addOne = 0
class SecondViewController: UIViewController
{
@IBOutlet weak var score: UITextField!
score.text = "\(addOne)"
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let gameOver = segue.destination as! GameOverViewController
gameOver.gameOverText = score.text!
gameOver.lastScore = addOne
}
スコア>ハイスコア場合、
- ハイスコア=スコア<ハイスコア場合
スコア、ハイスコアは同じまま
gameOverViewControllerclass GameOverViewController: UIViewController { @IBAction func retryButton(_ sender: Any) { addOne = 0 highScoreLabel.text = NSString(format: "%i", highScore) as String } @IBAction func mainMenuButton(_ sender: Any) { addOne = 0 highScoreLabel.text = NSString(format: "%i", highScore) as String } var lastScore = 0 var highScore = UserDefaults.standard.integer(forKey: "high_score") @IBOutlet weak var highScoreLabel: UILabel! @IBOutlet weak var scoreGameOverLabel: UILabel! var gameOver = "" override func viewDidLoad() { super.viewDidLoad() if lastScore > highScore { highScore = lastScore highScoreLabel.text = NSString(format: "%i", highScore) as String UserDefaults.standard.set(highScore, forKey: "high_score") } scoreGameOverLabel.text = gameOver }
保存していると言っていないされていません0 – gbhall
あなたは正しく、私はタイプミスがありました。今では私のスコアとハイスコアはアプリに保存されていますが、アプリを終了するとハイスコアは保存されません。 – ZDP
保存していないのですか? – gbhall