2015-10-29 12 views
5

Gibt es eine Möglichkeit, eine Datumsauswahl so einzustellen, dass beim Laden eine bestimmte Zeit angezeigt wird? Ich habe vier Datumsauswahl-Instanzen aus vier Textfeldern für Startzeit, Fertigstellungszeit, Startdatum und Enddatum unter Verwendung der Unterklasse squimer/datePickerDialog von GitHub initiiert, die in einer UIAlertView angezeigt wird.So legen Sie eine bestimmte Standardzeit für eine Datumsauswahl in Swift fest

In meiner App wäre eine Standardstartzeit 7.00 Uhr und eine Standardendzeit wäre 17.00 Uhr und der Benutzer kann sich um diese Zeiten anpassen.

Alles was ich sehen kann ist, dass Sie datePicker.defaultDate auf currentDate, minimumDate oder maximumDate und nur einmal einstellen können. Ist es möglich, das defaultDate in meinen Aufrufen vom ViewController auf hartcodierte Strings von sTime = "07:00" und fTime = "17:00" zu setzen?

Jede Hilfe wäre willkommen.

EDIT: Dies ist, wie ich die Unterklasse anzurufenden von meinem 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) 
} 

Beachten Sie, dass diese ganzen ich auch Ausdauer durch NSUser Defaults zu halten versuche.

+0

In einer Unterklasse, die für vier Viewcontroller Textwerte? – user3118171

Antwort

15

Suchen Sie nach der Zeit durch eine Zeichenfolge festlegen. Wenn dies der Fall ist, können Sie einen Datumsformatierer wie diesen verwenden.

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

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

datePicker.date = date 

Hinzufügen eines init zum Picker class

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 
    } 
} 
+0

Das ist die Art von Dingen, mit denen ich experimentiert habe, aber ich bin nicht sicher, wie ich es umsetzen soll. So rufe ich die Unterklasse datePickerDialog.swift auf. – user3118171

+0

@IBAction func setFT (Sender: UITextField) { resignKeyboardCompletely (Sender) DatePickerDialog() zeigen ("Wählen Sie eine Zielzeit", doneButtonTitle: "Fertig", cancelButtonTitle: "Abbrechen", datePickerMode: .Time). { (timeFinish) -> Void in self.dateFormatter.dateFormat = "HH: mm" lassen finTime = self.dateFormatter.stringFromDate (timeFinish) self.finishTime.text = finTime } defaults.setObject (finishTime.text, forKey : "finishTime") print (finishTime.text) – user3118171

+0

setze diesen Code in viewDidLoad wenn du möchtest dass dein datePicker zu diesem Zeitpunkt startet ... Ich bin mir nicht sicher was du fragst. Sie sollten wahrscheinlich versuchen, ein bisschen weiter zu erklären, was Sie versuchen und was genau Sie versucht haben, das ist gescheitert – Moriya

Verwandte Themen