I want to use a picker for two different text boxes

0

In one if it works for me but in the other when it is time to accept or cancel, it sends me an error.

func createDataPicker(_ textField : UITextField)
    {
        self.picker = UIDatePicker(frame:CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 216))
        self.picker.backgroundColor = UIColor.white
        self.picker.datePickerMode = UIDatePickerMode.date
        let loc = Locale(identifier: "es")
        self.picker.locale = loc

        let toolBar = UIToolbar()
        toolBar.barStyle = .default
        toolBar.isTranslucent = true
        toolBar.tintColor = UIColor(red: 92/255, green: 216/255, blue: 255/255, alpha: 1)
        toolBar.sizeToFit()

        let doneButton = UIBarButtonItem(title: "Aceptar", style: .plain, target: self, action: #selector(ViewController.doneClick(textField:)))
        let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
        let cancelButton = UIBarButtonItem(title: "Cancelar", style: .plain, target: self, action: #selector(ViewController.cancelClick(textField:)))
        toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
        toolBar.isUserInteractionEnabled = true

        textField.inputAccessoryView = toolBar
        textField.inputView = self.picker

        //dateRegistro.inputAccessoryView = toolBar
        //dateRegistro.inputView = self.picker
    }


    //Función de la fecha
    @objc func doneClick(textField: UITextField) {
        let dateFormatter1 = DateFormatter()
        dateFormatter1.dateFormat = "dd/MM/yyyy"

        //textField.text = dateFormatter1.string(from: picker.date)
        //textField.resignFirstResponder()

        dateField.text = dateFormatter1.string(from: picker.date)
        dateField.resignFirstResponder()

        //dateRegistro.text = dateFormatter1.string(from: picker.date)
        //dateRegistro.resignFirstResponder()

    }

    @objc func cancelClick(textField: UITextField) {
        //textField.resignFirstResponder()
        dateField.resignFirstResponder()
        //dateRegistro.resignFirstResponder()
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func textFieldDidBeginEditing(_ textField: UITextField) {
        self.createDataPicker(textField)
        //self.createDataPicker(self.dateRegistro)

    }
    
asked by Leslie Fabiola Villalpando Gar 18.04.2018 в 18:53
source

1 answer

0

What you have to do is use your method to create your pickers in your viewDidLoad

override func viewDidLoad() {
    super.viewDidLoad()
    //Aqui creas un picker para cada uno de tus textfields
    self.createDataPicker(self.miPrimerTextField)
    self.createDataPicker(self.miSegundoTextField)
}
    
answered by 05.06.2018 в 19:40