2015-10-29 3 views
5

C'è un modo per impostare un selettore di data per visualizzare un'ora specifica sul carico? Ho quattro istanze di selezione data avviate da quattro campi di testo per Ora inizio, Ora di fine, Data di inizio e Data di fine utilizzando la sottoclasse squimer/datePickerDialog di GitHub che si apre in un UIAlertView.Come impostare un tempo predefinito specifico per un selettore di data in Swift

Nella mia app l'ora di inizio predefinita sarebbe 7:00 AM e un orario di fine predefinito sarebbe 5:00 PM e consentire all'utente di regolare intorno a quei tempi.

Tutto quello che posso vedere è che è possibile impostare datePicker.defaultDate in data corrente, minimumDate o maximumDate e solo una volta. È possibile impostare il valore predefinito su stringhe hardcoded di sTime = "07:00" e fTime = "17:00" nelle mie chiamate dal ViewController?

Qualsiasi aiuto sarebbe apprezzato.

EDIT: Questo è come io chiamo la sottoclasse dal mio 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) 
} 

Nota che in tutto questo Sto anche cercando di mantenere la persistenza attraverso Defaults NSUser.

+0

In una sottoclasse richiesto per quattro valori di testo viewController? – user3118171

risposta

15

Stai cercando di impostare il tempo attraverso una stringa. Se questo è il caso, puoi usare un formattatore di date come questo.

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

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

datePicker.date = date 

Aggiunta di inizializzazione alla 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

Questo è il genere di cose che ho sperimentato ma non sono sicuro di come implementarlo. È così che sto chiamando la subclass datePickerDialog.swift. – user3118171

+0

@IBAction func setFT (mittente: UITextField) { resignKeyboardCompletely (mittente) DatePickerDialog() spettacolo ("scegliere un momento Fine", doneButtonTitle: "Fatto", cancelButtonTitle: "Annulla", datePickerMode: .Time). { (timeFinish) -> Void in self.dateFormatter.dateFormat = "HH: mm" lasciare finTime = self.dateFormatter.stringFromDate (timeFinish) self.finishTime.text = finTime } defaults.setObject (finishTime.text, Forkey : "finishTime") print (finishTime.text) – user3118171

+0

inserisci questo codice in viewDidLoad se vuoi che il tuo datePicker inizi in questo momento ... Non sono sicuro di cosa stai chiedendo. Probabilmente dovresti provare a spiegare un po 'più a fondo cosa stai tentando e cosa hai provato che è fallito. – Moriya

Problemi correlati