如何在Swift中为日期选择器设置特定的默认时间

use*_*171 15 uidatepicker swift

有没有办法设置日期选择器来显示加载时的特定时间?我从开始时间,结束时间,四个文本区发起了四个日期选择器的情况下,开始日期和使用从GitHub上的squimer/datePickerDialog子类,在一个UIAlertView中弹出的完成日期.

在我的应用程序中,默认开始时间是早上7:00,默认结束时间是下午5:00,让用户调整这些时间.

我只能看到你可以将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)
}
Run Code Online (Sandbox Code Playgroud)

请注意,在此期间,我还尝试通过NSUser Defaults维护持久性.

Mor*_*iya 33

您是否正在寻找通过字符串设置时间.如果是这种情况,您可以使用这样的日期格式化程序.

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat =  "HH:mm"

let date = dateFormatter.dateFromString("17:00")

datePicker.date = date
Run Code Online (Sandbox Code Playgroud)

将init添加到Picker类

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
    }
}
Run Code Online (Sandbox Code Playgroud)