0

I'm trying to open a date picker within a text field. The following error is being displayed.

Code

Code as follows:

import Foundation
import UIKit
class tableview : UITableViewController {
@IBOutlet weak var dateTextField: UITextField!
@IBAction func textFieldEditing(sender: UITextField) {

    let datePickerView:UIDatePicker = UIDatePicker()        
    datePickerView.datePickerMode = UIDatePickerMode.Date        
    sender.inputView = datePickerView        
    datePickerView.addTarget(self, action: #selector(UITableViewController.datePickerValueChanged), forControlEvents: UIControlEvents.ValueChanged)
}
func datePickerValueChanged(sender:UIDatePicker) {

    let dateFormatter = NSDateFormatter()        
    dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle        
    dateFormatter.timeStyle = NSDateFormatterStyle.NoStyle        
    dateTextField.text = dateFormatter.stringFromDate(sender.date)
    **strong text**
}
Jim
  • 14,952
  • 15
  • 80
  • 167
Joe
  • 859
  • 2
  • 10
  • 27
  • The answer is probably here http://stackoverflow.com/questions/35658334/how-do-i-resolve-ambiguous-use-of-compile-error-with-swift-selector-syntax/35658335#35658335 – FredericP Jul 29 '16 at 05:56

3 Answers3

0

Try it like,

 datePickerView.addTarget(self, action: #selector(self.datePickerValueChanged(_:)), forControlEvents: UIControlEvents.ValueChanged)

You are missing param of that function.

Hope this will help you.

Jigar Tarsariya
  • 3,189
  • 3
  • 14
  • 38
0

Make proper name to class tableview.(tableview -> TableViewController).

For add target you have to write class nmae.so here is class name (tableview -> TableViewController)

If you are using IBOutlet for textfield then put inputView code in viewDidLoad.

Try below code.

    import Foundation
    import UIKit
    class TableViewController : UITableViewController {

       @IBOutlet weak var dateTextField: UITextField!

       func viewDidLoad(){

           super.viewDidLoad()
           let datePickerView:UIDatePicker = UIDatePicker()

           datePickerView.datePickerMode = UIDatePickerMode.Date

           dateTextField.inputView = datePickerView

           datePickerView.addTarget(self, action: #selector(TableViewController.datePickerValueChanged), forControlEvents: UIControlEvents.ValueChanged)
}

    @IBAction func textFieldEditing(sender: UITextField) {


    }
    func datePickerValueChanged(sender:UIDatePicker) {

        let dateFormatter = NSDateFormatter()

        dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle

        dateFormatter.timeStyle = NSDateFormatterStyle.NoStyle

        dateTextField.text = dateFormatter.stringFromDate(sender.date)
        **strong text**
    }
Bhoomi Jagani
  • 2,413
  • 18
  • 24
0
datePickerView.addTarget(self, action: "datePickerValueChanged:", forControlEvents: UIControlEvents.ValueChanged)

or

datePickerView.addTarget(self, action: #selector(datePickerValueChanged(_:)), forControlEvents: UIControlEvents.ValueChanged)
HiDeoo
  • 10,353
  • 8
  • 47
  • 47