【发布时间】:2018-10-23 04:22:03
【问题描述】:
我有**两个日期选择器从日期到日期还有两个时间选择器 从时间到时间在我的 ViewController 中。我想像**一样验证它 1. 如果from 和 until 日期相同,则 until 时间不小于 from 时间。
第二次应该大于或等于第一次。检查下面的代码,它在我的 ViewController 类中。
@IBOutlet weak var fromCalender: UITextField!
@IBOutlet weak var fromTime: UITextField!
@IBOutlet weak var untilTheCalender: UITextField!
@IBOutlet weak var untilTheTime: UITextField!
var fromDatePicker = UIDatePicker()
var fromTimePicker = UIDatePicker()
var untilTheDatePicker = UIDatePicker()
var untilTheTimePicker = UIDatePicker()@IBAction func fromCalenderDatePicker(_ sender: UITextField) {
fromDatePicker.datePickerMode = .date
sender.inputView = fromDatePicker
fromDatePicker.minimumDate = Calendar.current.date(byAdding: .year, value: 0, to: Date())
fromDatePicker.addTarget(self, action: #selector(handleFromCalenderDatePicker(sender:)), for: .valueChanged)
}
@objc func handleFromCalenderDatePicker(sender: UIDatePicker) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy"
fromCalender.text = dateFormatter.string(from: sender.date)
untilTheDatePicker.minimumDate = sender.date
}
@IBAction func untilTheCalenderDatePicker(_ sender: UITextField) {
untilTheDatePicker.datePickerMode = .date
sender.inputView = untilTheDatePicker
untilTheDatePicker.addTarget(self, action: #selector(untilTheCalenderDatePicker(sender:)), for: .valueChanged)
}
@objc func untilTheCalenderDatePicker(sender: UIDatePicker) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy"
untilTheCalender.text = dateFormatter.string(from: sender.date)
}
@IBAction func fromTimePicker(_ sender: UITextField) {
fromTimePicker.datePickerMode = .time
sender.inputView = fromTimePicker
fromTimePicker.addTarget(self, action: #selector(handleTimePicker(sender:)), for: .valueChanged)
}
@objc func handleTimePicker(sender: UIDatePicker) {
let timeFormatter = DateFormatter()
timeFormatter.dateStyle = .none
timeFormatter.timeStyle = .short
timeFormatter.dateFormat = "HH:mm"
fromTime.text = timeFormatter.string(from: sender.date)
untilTheDatePicker.minimumDate = sender.date
}
@IBAction func untilTheTimePicker(_ sender: UITextField) {
untilTheTimePicker.datePickerMode = .time
sender.inputView = untilTheTimePicker
untilTheTimePicker.addTarget(self, action: #selector(handleUntilTheTimePicker(sender:)), for: .valueChanged)
}
@objc func handleUntilTheTimePicker(sender: UIDatePicker) {
let timeFormatter = DateFormatter()
timeFormatter.dateStyle = .none
timeFormatter.timeStyle = .short
timeFormatter.dateFormat = "HH:mm"
untilTheTime.text = timeFormatter.string(from: sender.date)
}
请给我任何解决方案。
【问题讨论】:
-
在 datePickerChanged 方法中更改 untilTheDatePicker 的最小日期。
标签: ios swift validation uidatepicker