使用 Date UIPicker 和 Normal Picker 设置文本字段时出错,我尝试了很多东西但出现错误

Error in setting textfield with Date UIPicker and Normal Picker, I tried a lot of things but getting error

我正在使用 Datepicker 和 Normal Picker 设置文本字段,但出现相同的错误,我无法执行此操作。下面是代码

class SetupViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {




    @IBOutlet weak var genderPickerInput: UITextField!

    @IBOutlet weak var datePickerInput: UITextField!
    private var datepicker: UIDatePicker?
    var genderPickerData: [String] = [String]()

    override func viewDidLoad() {
        super.viewDidLoad()
        let genderPicker = UIPickerView()
        genderPickerInput.inputView = genderPicker
        genderPicker.delegate = self
        datepicker = UIDatePicker()
        datepicker?.datePickerMode = .date
        datepicker?.addTarget(self, action: #selector(ViewController.dateChanged(datepicker)), for: .valueChanged)

        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.viewTapped(UITapGestureRecognizer)))
        view.addGestureRecognizer(tapGesture)

        datePickerInput.inputView = datepicker


        genderPickerData = ["Male", "Female", "Other"]
        // Do any additional setup after loading the view.
    }

    // MARK: UIPickerView Delegation

    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView( _ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return genderPickerData.count
    }

    func pickerView( _ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return genderPickerData[row]
    }

    func pickerView( pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        genderPickerInput.text = genderPickerData[row]
    }
    func dateChanged(datepicker : UIDatePicker){
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "MM/dd/yyyy"
        datePickerInput.text = dateFormatter.string(from: datepicker.date)
        view.endEditing(true)

    }


    func viewTapped(gestureRecognizer: UITapGestureRecognizer){
        view.endEditing(true)



    }
    }

错误 1

Type 'ViewController' has no member 'dateChanged'

错误 2

Type 'ViewController' has no member 'viewTapped', did you mean 'viewLoaded'

您需要删除 ViewController. 或将其替换为 self.

datepicker?.addTarget(self, action: #selector(self.dateChanged), for: .valueChanged) 
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.viewTapped))

func dateChanged(_ datepicker : UIDatePicker){}
func viewTapped(_ gestureRecognizer: UITapGestureRecognizer){}