web-dev-qa-db-ja.com

Swiftで日付ピッカーの特定のデフォルト時刻を設定する方法

ロード時に特定の時間を表示するように日付ピッカーを設定する方法はありますか? 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を通じて永続性を維持しようとしていることに注意してください。

15
user3118171

文字列を使用して時間を設定するために探していますか。その場合は、このような日付フォーマッターを使用できます。

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
    }
}
32
Moriya