Мое приложение сломалось, когда было выпущено iOS 13, и я не могу понять, как это исправить (Да, да, я знаю, что iOS 13 уже давно не работает, я просто собираюсь посмотреть в это).
У меня есть UIDatePicker, который используется в качестве настройки в течение времени, когда пользователь хочет инициировать уведомление. Это в формате ЧЧ: ММ, полученном с помощью Date> Custom в Инспекторе. Все, что мне нужно сделать, это получить все, что пользователь изменил время, и сохранить это в переменных: один для часа, а другой для минут. Эти переменные затем будут использоваться для обновления UserDefaults после нажатия кнопки «Сохранить».
Это то, что у меня есть сейчас, которое раньше работало до iOS 13:
@IBAction func startDayPickerControl(_ sender: AnyObject) {
// sets the hour and min vars to whatever was changed on the startDayPicker
hour = sender.hour
min = sender.minute
print("Start day set to \(hour):\(min)")
}
Это подключился к быстрому файлу следующим образом: введите описание изображения здесь
И тогда моя кнопка «Сохранить» сделает следующее:
@IBAction func saveSettingsButton(_ sender: AnyObject) {
appUserSettings.set(hour, forKey: "hour")
appUserSettings.set(min, forKey: "min")
print("saveSettingsButton tapped")
}
Я не могу понять, почему средство выбора даты не выводит данные при изменении. Все, что я получаю в print("Start day set to \(hour):\(min)")
, это «Начальный день установлен на 0: 0»
Я пробовал тестовый проект на случай, если что-то испортилось с моим существующим во время преобразования версии Swift. Это то, что у меня есть, и я получаю тот же результат печати 0: 0:
`class ViewController: UIViewController {
var hour = 8
var min = 30
@IBOutlet var CurrentSetTime: UILabel!
@IBAction func TimePicker(_ sender: Any) {
// sets the hour and min vars to whatever was changed on the startDayPIcker
// Xcode forced these changes from my above code here, but didn't on my original project
hour = (sender as AnyObject).hour
min = (sender as AnyObject).minute
CurrentSetTime.text = "\(hour):\(min)"
print("Start day set to \(hour):\(min)")
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}`
Любая помощь будет буду очень признателен!
Спасибо!