Я пытаюсь создать слайдер таким образом, чтобы при начальной загрузке приложения ползунок имел значение по умолчанию, например 5. Но если бы я изменил значение ползунка на 10 , и покиньте VC и вернитесь, я бы хотел, чтобы значение было 10. Я попытался реализовать это в своем приложении, но каждый раз, когда я возвращаюсь к VC после ухода, значение сбрасывается до значения, которое я дал ему в StoryBoard , Мой код делает это, делая значение 0 в 1 (что всегда будет иметь место при первом запуске кода), но я не считаю, что он изящный, и есть лучшие альтернативы. Я думаю, что я не правильно использую viewDidAppear и viewDidLoad, но я не совсем уверен, как улучшить код. Ниже моя попытка:Значение Swift Slider продолжает меняться до значения StoryBoard
var distanceMap: Int = Int()
import UIKit
class MapSettingsVC: UIViewController {
//IBOutlet for the slider
@IBOutlet weak var rangeSlider: UISlider!
// label for slider value
@IBOutlet weak var distanceLabel: UILabel!
//changes to slider value
@IBAction func distanceRange(_ sender: UISlider) {
distanceMap = Int(sender.value)
distanceLabel.text = String(distanceMap)
}
// iboutlet to go to another viewController
@IBAction func backButtonTapped(_ sender: AnyObject) {
self.performSegue(withIdentifier: "mapSettingsGoBack", sender: self)
}
override func viewDidAppear(_ animated: Bool) {
rangeSlider.value = Float(distanceMap)
distanceLabel.text = String(Int(rangeSlider.value))
// I have initialized the label to be 0, so this will be FIRST value when the VC is loaded, and the if statement always runs the first time
if distanceLabel.text == "0" {
rangeSlider.value = 1
distanceLabel.text = "1"
}
}
override func viewDidLoad() {
super.viewDidLoad()
}
В идеале я бы не хотел ползунок, чтобы даже иметь возможность «0», и есть по умолчанию установлено значение 5.
Вы осознаете, что пользователь снова перезапустил приложение и триггеры ViewDidLoad, значение ползунка по умолчанию вернется к 5. Мне требуется аналогичная глобальная переменная для хранения и использования в моем приложении для UISlider. –