나는 스스로 시간을 벌고 많은 질문을 끝내는 데 얼마나 걸리는 지 알 수있는 앱이있다. 시간이 다른 VC로 전송되어 레이블에 표시됩니다. 나는 버튼을 눌러서 저장하고 있지만 새로운 변수 (시간)가있을 때 그것을 바꿉니다. 어떻게 값의 배열을 저장하고 레이블에 표시 할 수 있습니까? 영구적으로 데이터를 보유UserDefaults를 사용하여 서로 바꿔주는 가치
@IBAction func saveScore(_ sender: Any) {
scoreLabel.text = label.text
UserDefaults.standard.set(scoreLabel.text, forKey: "score")
}
코드 :
override func viewDidAppear(_ animated: Bool) {
if let x = UserDefaults.standard.object(forKey: "score") as? String {
scoreLabel.text = x
}
}
내 scoreLabel 내 모든 점수를 표시하고 라벨이 방금 도착 시간을 보여줍니다
버튼 값을 저장합니다.
덕분에 밀란의 도움이 매우 감사합니다! 내가 게임을 끝내면 라벨이 예를 들어 23.5 초라고 말한 것 대신에 "라벨"을 표시하는 방법을 제외하고는 그 외의 다른 것은 괜찮습니다. –
은 UserDefaults의 문제가 아닙니다. 아마도 가장 중요한 것은 레이블의 텍스트 (및 데이터를 UserDefaults에 저장할 때). 코드를 살펴보고 사용 가능한 즉시 데이터를 UserDefaults에 저장하려고 시도하고 레이블이 제시 될 때 가능한 한 빨리 UserDefaults에서 레이블을 새로 고칩니다. 결국 viewController 사이에 전달해야 할 필요가 없습니다. 마지막에 도달하면 값을 추가하고 label이있는 viewController에서는 UserDefaults의 데이터를 사용합니다. –
감사합니다. 감사의 말을 알려 드리겠습니다. 모두를위한! –