Вероятно, ранее Рмадди указал на проблему.В этом случае используйте spell thingy.
В противном случае, возможно, что установка значения состояния вашего переключателя при исчезновении вида не является разумным выбором.Как и в случае, когда приложение переходит в фоновый режим, другие процессы выполняются параллельно, и, вероятно, установка по умолчанию не применяется до закрытия приложения.
Я бы обычно устанавливал такие значения при вызове таких функций, т. Е. В действии switch.Как только пользователь изменит состояние переключателя, сохраните его в defaults
, таким образом, когда вы получите его, когда viewDidAppear
, он будет работать.
import UIKit
class ViewController: UIViewController {
let userDefaults = UserDefaults.standard
@IBOutlet weak var mySwitch: UISwitch!
@IBAction func switchAction(_ sender: UISwitch) {
userDefaults.set(sender.isOn, forKey: "mySwitchValue")
}
override func viewDidAppear(_ animated: Bool) {
mySwitch.isOn = userDefaults.bool(forKey: "mySwitchValue")
}
}
Демонстрация ниже: