У меня есть всплывающий контроллер вида, как на картинке выше.В viewDidLoad
я установил минимальную дату для представления выбора сейчас (Date ()), а в раскадровке я установил интервал времени в 15 минут.Вот код, который я использую
class DateTimePickerVC: UIViewController {
@IBOutlet var dateTimePickerView: UIDatePicker!
var selectedDateAndTime : Date?
override func viewDidLoad() {
super.viewDidLoad()
// to make live update of selected date
dateTimePickerView.addTarget(self, action: #selector(DateTimePickerVC.datePickerValueChanged), for: UIControl.Event.valueChanged)
// minimum date is now
dateTimePickerView.minimumDate = Date()
// set initial value, to avoid nil value
selectedDateAndTime = dateTimePickerView.date
}
@objc func datePickerValueChanged (datePicker: UIDatePicker) {
selectedDateAndTime = datePicker.date
}
@IBAction func pickedButtonDidPressed(_ sender: Any) {
// send date 'selectedDateAndTime' to other VC
}
}
У меня есть 2 проблемы:
пусть пользователь откроет всплывающее окно datePickerVC в 16:28.Я ожидаю, что минимальная дата и время, которые будут отображаться в этом всплывающем окне, будут «Сегодня 16:30», но в моем случае это «Сегодня 16:15».как решить эту проблему?
, чтобы избежать значения ноль selectedDateAndTime
, в viewDidLoad
я установил selectedDateAndTime = dateTimePickerView.date
, поэтому я надеюсь, что когда пользователь сразу нажмет кнопку сохранения иотправьте date
в другой VC без прокрутки средства выбора даты, он получит минимальную дату, отображаемую в DatePicker.Допустим, пользователь открывает, что всплывает в 16:08, я ожидаю, что выбранная дата будет минимальной датой и временем, отображаемым в datePickerView (сегодня 16:15), но фактическое значение даты, которое я получаю (Сегодня 16:08),потому что я установил datePicker.minimumDate = Date()
(сейчас).как получить минимальную дату, отображаемую в представлении datePicker?