2017-03-21 2 views
0

Ich bin neu in iOS/Swift also bitte bitte mit mir.UITextField mit DatePicker stürzt ab

Ich habe ein TextField, timeTextField und möchte einen TimePicker beim Klicken anzeigen. All das funktioniert, aber wenn ein anderes Element ausgewählt wird, stürzt die App ab, warum stürzt sie ab? UPDATE 1: aktualisierte Code Code:

func setupTimePicker(){ 
    datePickerView.datePickerMode = UIDatePickerMode.time 
    datePickerView.removeFromSuperview() 
    timeTextField.inputView = datePickerView 
    datePickerView.addTarget(self, action: #selector(self.datePickerValueChanged(sender:)), for: .valueChanged) 
} 

func datePickerValueChanged(sender:UIDatePicker) { 
    var date = Date() 
    let calendar = Calendar.current 

    date = sender.date; 

    let hour = calendar.component(.hour, from: date) 
    let minutes = calendar.component(.minute, from: date) 

    timeTextField.text = String(format: "%02d", hour) + ":" + String(format: "%02d", minutes) 
} 

Fehler:

[TestApp.ViewController pickTime:]: unrecognized selector sent to instance 0x7f9305e08e20

+0

Überprüfen Sie, ob Ihre 'timeTextField'-Instanz ordnungsgemäß verbunden ist (IBOutlet). –

+0

Haben Sie eine 'func pickTime (...)' irgendwo in Ihrem Code? Oder hattest du vorher einen? Wenn JA, überprüfen Sie Ihr Storyboard, Ihre UIViewController-Klasse ist nicht korrekt oder Sie haben dort ein altes IBOutlet für eine IBAction. – Larme

+0

Ich hatte vorher einen und vergaß, ihn von meiner Anzeigetafel zu entfernen, wie ich sagte, ich bin neu in iOS, also ist es ein Anfängerfehler –

Antwort

0

Seit iOS8/iOS9, wenn Sie eine Ansicht als inputView zu UITextField App abstürzt hinzugefügt. Um Ihren Absturz zu beheben, bevor Sie datePicker als inputView zu UITextField Anruf [<pickerView> removeFromSuperView] hinzufügen. Dies wird das Crash-Problem lösen.

+0

Wenn ich meinen Code ändere: datePickerView.datePickerMode = UIDatePickerMode.time datePickerView.removeFromSuperview () timeTextField.inputView = datePickerView Es stürzt immer noch –

+0

können Sie Ihren aktualisierten Code auf Ihre Frage hinzufügen? –

+0

Ich habe meine Frage mit Ihren Änderungen bearbeitet. –