Date Picker Modally - Team-Nogari/Huhoe GitHub Wiki
modal๋ก ๋์์ง๋ DatePicker๋ฅผ ๊ตฌํํ๊ณ ์ถ์ด ์ฌ๋ฌ ์๋๋ฅผ ํด๋ณด์๊ณ , alerts-and-pickers ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์คํ ์์ค๋ฅผ ๋ณด๊ณ ์กฐ๊ธ ๋ ์ปค์คํ ํ๊ฒ ๊ตฌํํ์์
class DatePickerViewController: UIViewController {
typealias Action = (Date) -> Void
var action: Action?
override func viewDidLoad() {
super.viewDidLoad()
}
private let datePicker: UIDatePicker = {
let datePicker = UIDatePicker()
datePicker.datePickerMode = .date
datePicker.preferredDatePickerStyle = .wheels
datePicker.locale = Locale(identifier: "ko_KR")
return datePicker
}()
required init(
date: Date? = Date().yesterday,
minimumDate: Date? = Date(timeIntervalSince1970: 1388070000), // 1388070000: Bithumb Public API Bitcoin Candlestick ๊ฐ์ฅ ์ค๋๋ UTC ์๊ฐ
action: Action?
) {
super.init(nibName: nil, bundle: nil)
datePicker.date = Date().yesterday
datePicker.setDate(date ?? Date().yesterday, animated: false)
datePicker.minimumDate = minimumDate
datePicker.maximumDate = Date().yesterday
self.action = action
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override func loadView() {
view = datePicker
}
deinit {
action?(datePicker.date)
}
}
private extension UIAlertController {
func addDatePicker(
date: Date?,
action: DatePickerViewController.Action?
) {
let datePicker = DatePickerViewController(date: date, action: action)
setValue(datePicker, forKey: "contentViewController")
}
}