2017-06-28 2 views
-1

In meiner ersten App, die Swift 3 verwendet, kann der Benutzer auf dem Profilbildschirm sein Geburtsdatum eingeben.Benutzer-Geburtsdatum aufzeichnen und speichern, wenn Benutzer auf das Textfeld tippen

Der Benutzer tippt beim Antippen von UI auf ein Textfeld. DatePicker wird angezeigt. Mein Problem ist, dass die Datumsauswahl nur Tag und Uhrzeit anzeigt. Ich möchte einen Kalender haben, in dem Benutzer sein Geburtsdatum auswählen kann und dann dieses Geburtsdatum im Textfeld zeigt, von wo es später in der Datenbank gespeichert wird. Ich bin hier auf viele Antworten gestoßen, aber sie basieren hauptsächlich auf dem Date Picker, der nicht im Kalender enthalten ist.

override func viewDidLoad() { 
    super.viewDidLoad() 
    userDateofBirthTextField.delegate = self 
} 


func datePickerChanged(sender: UIDatePicker) { 


    let datePicker = UIDatePicker() 
    datePicker.datePickerMode = UIDatePickerMode.date 

    datePicker.maximumDate = Calendar.current.date(byAdding: .year, value: -16, to: Date()) 

    userDateofBirthTextField.inputView = datePicker // selected date should show in text field 
} 

func textFieldDidBeginEditing(_ textField: UITextField) { 
    let datePicker = UIDatePicker() 
    textField.inputView = datePicker 
    datePicker.addTarget(self, action: #selector(datePickerChanged(sender:)), for: .valueChanged) 
} 

func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
    userDateofBirthTextField.resignFirstResponder() 
    return true 
} 


func closekeyboard() { 
    self.view.endEditing(true) 
} 


override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    closekeyboard() 
} 
+0

warum haben Sie Daten Picker als Eingangsansicht userDateofBirthTextField in datePickerChanged Methode zuweisen? – KKRocks

+0

Wie ich bin nicht sicher, wie zeige ich das ausgewählte Datum in das Textfeld ein. Bitte empfehlen Sie alle Lösungen –

+0

bewegen Sie Ihren Code von 'datePickerChanged' zu' viewDidLoad'. Wenn Sie auf das Textfeld klicken, öffnet sich Ihr Datepicker. Sie müssen grundlegend lernen. Finde ein gutes Tutorial und lies es! – Lion

Antwort

0

Sie können wie folgt geändert werden.

In ViewDidLoad

let datePicker = UIDatePicker() 
    datePicker.maximumDate = Calendar.current.date(byAdding: .year, value: -16, to: Date()) 
    userDateofBirthTextField.addTarget(self, action: #selector(datePickerChanged(sender:)), for: .valueChanged) 
    textField.inputView = datePicker 

Selector Methode

func datePickerChanged(sender: UIDatePicker) { 
       let formatter = DateFormatter() 
     formatter.dateFormat = "yyyy mm dd" 
      userDateofBirthTextField.text = formatter.string(from: sender.date) 
     } 
Verwandte Themen