1
我花了大约3小时试图让UIDatePicker
做我想做的事情。我将它设置为一个UITextField
的动作,以便继续使用UIDatePicker
的新视图控制器。这一切都工作。我可以选择一个日期并将其发送回原始视图控制器。UIDatePicker与间隔5分钟获取日期出现间隔
问题是我正在使用5分钟的时间间隔。如果我不移动日期选择器“轮子”并选择我的完成按钮返回到父控制器,则返回非间隔时间。所以11:37当我需要11:40时会返回11:37。但是,如果我更改“轮子”它将返回舍入时间。日期选择器当前显示出现5分钟的时间间隔。任何线索可以让我找到正确的解决方案?我试过setDate
和minuteInterval
对UIDatePicker
on viewDid出现无济于事。下面是我一直使用的代码:
protocol DatePickerDelegate {
func datePickerDidSelect(selectedDate: String)
}
class DatePickerVC: UIViewController {
@IBOutlet weak var pickerView: UIDatePicker!
var selectedDate = ""
var delegate : DatePickerDelegate?
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
//setDate()
//Have tried using setDate and minuteInterval here
}
func formatDate() -> DateFormatter {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMM d, yyyy h:mm a"
return dateFormatter
}
func setDate() {
let dateFormatter = formatDate()
selectedDate = dateFormatter.string(from: pickerView.date)
self.delegate?.datePickerDidSelect(selectedDate: selectedDate)
print(selectedDate)
}
@IBAction func datePickerChanged(_ sender: Any) {
setDate()
}
@IBAction func doneBtnPressed(_ sender: Any) {
self.dismiss(animated: true, completion: nil)
}
@IBAction func cancelBtnPressed(_ sender: Any) {
self.dismiss(animated: true, completion: nil)
}
}
我得到了这个工作,但不得不将'datePicker.date = roundedDate'换成'datePicker.setDate(roundedDate,animated:false)'。但在此期间,实际上决定关闭完成按钮,直到选择/更改时间为止,因为在此应用程序中很可能他们不会选择正在开始的时间。 – user1881482