약 3 시간 동안 UIDatePicker
에 내가 원하는 것을하기 위해 노력했습니다. 나는 UITextField
의 동작으로 설정하여 UIDatePicker
으로 새로운보기 컨트롤러에 연결합니다. 이것은 모두 작동합니다. 날짜를 선택하고 원래보기 컨트롤러로 다시 보낼 수있었습니다.간격이 5 분인 UIDatePicker가 간격을두고 나타납니다.
문제는 5 분의 시간 간격을 사용하고 있다는 것입니다. 날짜 선택 도구 "바퀴"을 이동하지 않고 부모 컨트롤러로 돌아 가기 위해 내 완료 버튼을 선택하면 비 간격 시간이 반환됩니다. 그래서 11시 37 분 11시 40 분이 필요할 때 11시 37 분 반환합니다. 그러나 "바퀴" 변경하면 반올림 된 시간을 반환합니다. datepicker가 현재 5 분 간격을 표시하고 있습니다. 올바른 해결책을 찾는데 필요한 단서가 있습니까? viewDidAppear에서 setDate
및 minuteInterval
을 UIDatePicker
에 시도했지만 아무 소용이 없습니다.
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