ロード時に特定の時間を表示するように日付ピッカーを設定する方法はありますか? UIAlertViewにポップアップするGitHubのsquimer/datePickerDialogサブクラスを使用して、開始時刻、終了時刻、開始日、終了日の4つのテキストフィールドから開始される4つの日付ピッカーインスタンスがあります。
私のアプリでは、デフォルトの開始時刻は午前7:00で、デフォルトの終了時刻は5:00 PMであり、ユーザーはそれらの時刻を調整できます。
私が見ることができるのは、datePicker.defaultDateをcurrentDate、minimumDateまたはmaximumDateに一度だけ設定できることです。 ViewControllerからの呼び出しでdefaultDateをハードコードされたsTime = "07:00"およびfTime = "17:00"の文字列に設定することは可能ですか?
助けていただければ幸いです。
編集:これは、viewControllerからサブクラスを呼び出す方法です
@IBAction func setFT(sender: UITextField) {
resignKeyboardCompletely(sender)
DatePickerDialog().show("Pick a Finish Time", doneButtonTitle: "Done", cancelButtonTitle: "Cancel", datePickerMode: .Time) {
(timeFinish) -> Void in
self.dateFormatter.dateFormat = "HH:mm"
let finTime = self.dateFormatter.stringFromDate(timeFinish)
self.finishTime.text = finTime
}
defaults.setObject(finishTime.text, forKey: "finishTime")
print(finishTime.text)
}
この間、NSUser Defaultsを通じて永続性を維持しようとしていることに注意してください。
文字列を使用して時間を設定するために探していますか。その場合は、このような日付フォーマッターを使用できます。
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm"
let date = dateFormatter.dateFromString("17:00")
datePicker.date = date
Pickerクラス にinitを追加する
init(time:String) {
super.init(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.size.width, UIScreen.mainScreen().bounds.size.height))
setupView()
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm"
if let date = dateFormatter.dateFromString("17:00") {
datePicker.date = date
}
}