web-dev-qa-db-fra.com

Comment définir une heure par défaut spécifique pour un sélecteur de date dans Swift

Existe-t-il un moyen de définir un sélecteur de date pour afficher une heure spécifique en charge? J'ai quatre instances de sélecteur de dates lancées à partir de quatre champs de texte pour l'heure de début, l'heure de fin, la date de début et la date de fin à l'aide de la sous-classe squimer/datePickerDialog de GitHub qui apparaît dans un UIAlertView.

Dans mon application, une heure de début par défaut serait 7h00 et une heure de fin par défaut serait 5h00 PM et laisser l'utilisateur s'ajuster autour de ces heures.

Tout ce que je peux voir, c'est que vous pouvez définir la datePicker.defaultDate sur currentDate, minimumDate ou maximumDate et une seule fois. Est-il possible de définir la valeur defaultDate sur des chaînes codées en dur de sTime = "07:00" et fTime = "17:00" dans mes appels à partir du ViewController?

Toute aide serait appréciée.

EDIT: Voici comment j'appelle la sous-classe depuis mon 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)
}

Notez que tout au long de cela, j'essaie également de maintenir la persistance via les valeurs par défaut de NSUser.

15
user3118171

Cherchez-vous à régler l'heure à travers une chaîne. Si tel est le cas, vous pouvez utiliser un formateur de date comme celui-ci.

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

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

datePicker.date = date

Ajout d'un init à la classe 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
    }
}
32
Moriya