2016-04-09 42 views
0

Birden çok UITextField var ve bunların bazıları 'UIDatePicker' kullanacak. işlevinde textField.text = formatter.stringFromDate(datePicker.date) koduna gerek kalmadan UIDatePicker öğesinden değeri nasıl döndürebilirim?Birden çok UITextFields varsa UIDatePicker'dan geri dönen değer

func textFieldDidBeginEditing(textField: UITextField) { 
    switch textField.tag { 

     //tag = 3 is the text field that needs the date 
    case 3: 
     let datePicker = UIDatePicker() 
     textField.inputView = datePicker 
     datePicker.addTarget(self, action: "datePickerChanged:", forControlEvents: .ValueChanged) 
     //textField.text = value returned from datePickerChanged 
    default: break 
    } 
} 

func datePickerChanged(datePicker: UIDatePicker) { 
    let formatter = NSDateFormatter() 
    formatter.dateStyle = .MediumStyle 
    let dateTextValue = formatter.stringFromDate(datePicker.date) 
    // how can I return (dateTextValue)? 
} 

cevap

1

Sen currentTextField adında bir değişken oluşturmak ve davanız açıklamada currentTextField için textField atayabilir. Sonra datePickerChanged (_ :) işlevi, tarihi ayarlamak için currentTextField'u kullanabilir.

+0

Yanıt için teşekkürler. Hmm tamam, currentTextField'ı başlatmaya nasıl başlamalıyım? Belki de tam olarak anlamıyorum – Sami

+1

@Sami, var varTextField: UITextField? Bu currentTextField'ı sıfırlar. Whoops - bir @IBOutlet olmamalıdır. – 7stud

+0

Değişkenini örtük olarak isteğe bağlı olarak isteğe bağlı olarak bildirebilirsiniz: "var currentTextField: UITextField!", Bu değişkenle başa çıkmayı kolaylaştırır. – 7stud