Я делаю игру в Swift, которая записывает высокий счет и инициалы (по аналогии с записями пинбола) и отображает их на экране игры в виде меток.Я использую код ниже, чтобы записать высокий балл и инициалы на моем телефоне и обновить их.Пока эта программа будет только на моем телефоне, поэтому я не беспокоюсь о сохранении или обновлении данных в удаленной базе данных.
То, что я пока не знаю, как это сделать, - это сделать немноговсплывающее окно с просьбой ввести свои инициалы на клавиатуре при нажатии кнопки выхода, если они имеют текущий высокий балл.В идеале я хочу, чтобы он мог принимать только 3 символа и немедленно обновлять метку инициалов, прежде чем пользователь перейдет на другой контроллер представления.
@IBOutlet weak var scoreLabel: UILabel!
@IBOutlet weak var highScoreLabel: UILabel!
@IBOutlet weak var highScoreInitialsLabel: UILabel!
var score : Int = 0
//Stores and sets high score initials
var oldHighScoreInitials : String = "AAA"
var highScoreInitials : String {
get {
return UserDefaults.standard.string(forKey: "highScoreInitials") ?? "AAA"
}
set {
UserDefaults.standard.set(newValue, forKey: "highScoreInitials")
}
}
//Stores and sets high score
var oldHighScore : Int = 0
var highScore : Int {
get {
return UserDefaults.standard.integer(forKey: "highScore")
}
set {
UserDefaults.standard.set(newValue, forKey: "highScore")
}
}
override func viewDidLoad() {
super.viewDidLoad()
//Updates high score and initials labels with stored highest score and associated initials
highScoreLabel.text = String(highScore)
highScoreInitialsLabel.text = String(highScoreInitials)
oldHighScore = highScore
oldHighScoreInitials = highScoreInitials
}
//Asks for initials if new high score, and segues to Main VC
@IBAction func quitButtonPressed(_ sender: AnyObject) {
if (score > highScore){
highScore = score
print("Ask for initials")
print("Game over, thanks for playing!"
print("Segue to Main VC")
}
else {
print("Game over, thanks for playing!")
print("Segue to Main VC")
}
}
Большое спасибо всем, кто предлагает помощьили совет.