Я пытаюсь представить данные (в ячейке), которые пользователь ввел с помощью всплывающего окна. Я могу получить данные из всплывающего окна, однако они возвращаются к исходному значению, когда я поднимаю другое всплывающее окно.
ViewController
var highScore = "~"
var level = "1"
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let scorePopupViewController = segue.destination as? ScorePopupViewController{
scorePopupViewController.onSaveScore = updateHighScore
}else if let levelPopupViewController = segue.destination as? LevelViewController{
levelPopupViewController.onSaveLevelMyKey = updateLevel
levelPopupViewController.mode = sender as! Int
}
}
func updateHighScore(_ data:String?)->(){
if data != nil{
highScore = data!
}
tableView.reloadData()
}
func updateLevel(_ data:[String]?)->(){
if data != nil{
level = String(data![1])
}
tableView.reloadData()
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//third section
if indexPath.section == 3{
let statisticCell:StatisticTableViewCell! = tableView.dequeueReusableCell(withIdentifier: "STATS_CELL") as? StatisticTableViewCell
statisticCell.delegate = self
statisticCell.scoreSelectBtn.titleLabel?.text = self. highScore
statisticCell.levelSelectBtn.titleLabel?.text = self.level
return statisticCell
}
//Delegate for cell
func scoreSelectBtnWasPressed() {
performSegue(withIdentifier: "TO_SCOREPOPVC", sender: nil)
}
func levelSelectBtnWasPressed() {
performSegue(withIdentifier: "TO_LEVELPOPVC", sender: 0)
}
ScorePopupV C
var onSaveScore:((_ data: String?)->())?
@IBAction func addScoreBtnWasPressed() {
if scoreTextField.text! != ""{
onSaveScore?(scoreTextField.text!)
}else{
onSaveScore?(nil)
}
dismiss(animated: true)
}
@objc func dismissView (_ sender: UITapGestureRecognizer) {
if scoreTextField.text! == ""{
onSaveScore?(nil)
}
dismiss(animated: true)
}
Странная часть заключается в том, что при печати рекордов и уровень в cellForRowAt
я получаю правильную оценку. Это немного сложно, поэтому я создал диаграмму происходящего. Любая помощь приветствуется