2016-04-09 11 views
0

私は複数のUITextFieldを持っていて、それらのうちのいくつかは 'UIDatePicker'を使用します。 datePickerChanged関数でtextField.text = formatter.stringFromDate(datePicker.date)をコーディングせずに、UIDatePickerから値を返すにはどうすればよいですか?複数のUITextFieldが存在する場合に、UIDatePickerから返す値

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)? 
} 

答えて

1

あなたがcurrentTextFieldという変数を作成し、あなたのケース文でcurrentTextFieldtextFieldを割り当てることができます。次に、datePickerChanged(_ :)関数でcurrentTextFieldを使用して日付を設定できます。

+0

お返事ありがとうございます。うーん、 'currentTextField'をどのように初期化すればいいですか?たぶん私はかなり理解していない – Sami

+1

@Sami、 'var currentTextField:UITextField? 'これは、currentTextFieldをnilに初期化します。うわー、それは@IBOutletであってはいけません。 – 7stud

+0

変数を暗黙のうちにアンラップされたオプションとして宣言することさえできるかもしれません: 'var currentTextField:UITextField! '。変数を扱いやすくします。 – 7stud

関連する問題