Хорошо, у меня была точно такая же проблема на устройствах под управлением iOS 13, и когда я запустил Xcode 11. Проблема (по крайней мере для меня) заключалась в том, что Apple (вероятно) исправила ошибку, связанную с «valueChanged». подключите UISwitch, см .:
В любом случае, раньше все происходило так, что действие для переключателя запускалось дважды, поэтому я (очевидно) сам установил переключатель в нужное состояние. Например:
@IBAction func notificationsSwitchTapped(_ sender: UISwitch) {
if sender.isOn{
sender.setOn(false, animated: true)
}else{
sender.setOn(true, animated: true)
}
}
Но в iOS 13 Xcode 11 исправлена ошибка UISwitch «valueChanged», и проверяемое мной значение .isOn () фактически уже является новым значением:
@IBAction func notificationsSwitchTapped(_ sender: UISwitch) {
if sender.isOn{
// The switch has been turned on
}else{
// The switch has been turned off
}
}
Короче говоря, ваш коммутатор, вероятно, вызывался дважды, поэтому ваш логический параметр состояния UISwitch противоположен вашему Xcode 11 коду iOS 13.