2017-02-17 3 views
-3

Ich versuche, den Benutzer eine Zeit mit einer UIDatePicker auswählen und wenn diese Zeit kommt, die dem Zeitzähler entspricht, wird ein Code implementiert werden. Ich versuche herauszufinden, wie man eine UIDatePicker 'selected time' als String erhält, damit ich sie in einem separaten Teil meiner App verwenden kann. Ich habe ein paar Fragen zu StackOverFlow in Objective-C darüber, wie man die UIDatePicker Eingabe in eine Zeichenfolge konvertiert, aber ich habe nichts in Swift gefunden. Bitte helfen Sie.Wie bekomme ich einen String-Wert von der UIDatePicker

func setDateAndTime() { 
    dateFormatter.dateStyle = DateFormatter.Style.short 
    dateFormatter.timeStyle = DateFormatter.Style.short 
    dateTimeDisplay.text = dateFormatter.string(from: datePicker.date) + " " + dateFormatter.string(from: datePicker.date) 
    datePicker.textInputMode = "\(dtpk.date)" 
    datePicker.textInputContextIdentifier = "\(dtpk.date)" 
} 

Ich habe nicht alle Fehler auf diesem Code, aber meine App immer abgestürzt, wenn setDateAndTime()

ausgeführt wurde
+0

Diese Frage ist zu umfassend. Stack Overflow ist kein Ort, an dem Menschen Code für Sie schreiben. Hier können Sie spezifische Fragen stellen, um Hilfe und Anleitung zu erhalten. Beginnen Sie damit, den Code, den Sie ausprobiert haben, zu posten, was Sie erreichen möchten, was nicht funktioniert, usw. Je spezifischer Sie sind, desto besser. – garrettmurray

+0

Ich habe den Code hinzugefügt, den ich ausprobiert habe. Lass es mich wissen, wenn das hilft. – user7560527

+0

Warum versuchen Sie, zwei Aufrufe an den Datumsformatierer zu verketten? Sie brauchen nicht zwei Anrufe. Ein Anruf hat sowohl das Datum als auch die Uhrzeit. – rmaddy

Antwort

0
datePicker?.addTarget(self, action: #selector(self.dateChanged), for: .valueChanged) 

hinzufügen Ziel für Datumsauswahl

func dateChanged(sender : UIDatePicker) { 
     let dateFormatr = DateFormatter() 
     dateFormatr.dateFormat = "dd MMMM, h:mm a" 
     let strDate = dateFormatr.string(from: (datePicker?.date)!) 
     print(strDate) 
    } 
+3

Verwenden Sie diesen Code nicht wie er ist. Es wird abstürzen, wenn 'datePicker'' nil' ist. – rmaddy

+0

Und warum ein spezifisches Datumsformat hardcodieren, wenn das OP zeigt, dass sie kurzes Stildatum und -uhrzeit verwenden wollen? – rmaddy

+0

@rmaddy Sie haben Recht! – Mannopson

0
//Add a Action method on UIDatePicker like this: 
yourDatePickerView1.addTarget(self, action: Selector("pickerAction:"), forControlEvents: UIControlEvents.ValueChanged) 
And then do something like this in your handler: 
func pickerAction(sender: UIDatePicker) { 
    var timeFormatter = NSDateFormatter() 
    timeFormatter.timeStyle = NSDateFormatterStyle.ShortStyle 

    var strPickerDate = timeFormatter.stringFromDate(datePicker.date) 
    // do what you want to do with the string. 
} 
Verwandte Themen