Mehrere Pickerviews mit mehreren Textfeld-Eingabeviews Swift

Ich habe das Forum durchsucht und nichts hat geholfen. Ich verwende 4 Textfelder in einer Ansichtssteuerung und verwende für jedes Textfeld eine separate Auswahlansicht als Eingabeansicht für die textFields (4pickers).

Wenn ich auf das erste Textfeld klicke, wird pickerView1 erfolgreich angezeigt und das Textfeld zeigt die Daten an. Wenn ich jedoch auf das zweite, dritte und vierte Textfeld klicke, wird das erste pickerView angezeigt. Ich vermute, der Fehler liegt in den inputView-Deklarationen.

Und ich würde es sehr begrüßen, wenn Sie dazu beitragen könnten, der PickerView eine Schaltfläche "Fertig" hinzuzufügen.

Mein Code:

class ViewController1: UIViewController, UIPickerViewDelegate
{

    @IBOutlet var pickerView1: UIPickerView!
    @IBOutlet var pickerView2: UIPickerView!
    @IBOutlet var pickerView3: UIPickerView!
    @IBOutlet var pickerView4: UIPickerView!

    @IBOutlet var textField1: UITextField!
    @IBOutlet var textField2: UITextField!
    @IBOutlet var textField3: UITextField!
    @IBOutlet var textField4: UITextField!

    var hazards = ["a","b", "c"]
    var reasons = ["d", "e", "f"]
    var site = ["v","h","i","j"]
    var line = ["k", "l","m", "n"]

    override func viewDidLoad() {

        super.viewDidLoad()
        pickerView1 = UIPickerView()
        pickerView2 = UIPickerView()
        pickerView3 = UIPickerView()
        pickerView4 = UIPickerView()
        pickerView1.delegate = self
        pickerView2.delegate = self
        pickerView3.delegate = self
        pickerView4.delegate = self

        self.textField1.inputView = self.pickerView1;
        self.textField2.inputView = self.pickerView2;
        self.textField3.inputView = self.pickerView3;
        self.textField4.inputView = self.pickerView4;
    }

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

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {

        if pickerView.tag == 0 {
            return hazards.count
        } else if pickerView.tag == 1 {
            return reasons.count
        } else if pickerView.tag == 2 {
            return  site.count
        } else if  pickerView.tag == 3 {
            return line.count
        }
        return 1
    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {

        if pickerView.tag == 0 {
            return hazards[row]
        } else if pickerView.tag == 1 {
            return reasons[row]
        } else if pickerView.tag == 2 {
            return site[row]
        } else if pickerView.tag == 3 {
            return line[row]
        }

        return ""
    }

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)  {

        if pickerView.tag == 0 {
            textField1.text = hazards[row]
        } else if pickerView.tag == 1 {
            textField2.text = reasons[row]
        } else if pickerView.tag == 2 {
            textField3.text = site[row]
        } else if pickerView.tag == 3 {
            textField4.text = line[row]
        }
    }
}