Swift 複数コントローラー

例えば、日付のテキストフィールドが二カ所以上あって、datePickerViewを使わないといけない、或いは、pickerViewが同様に数カ所有った場合、コントロール毎に同じ処理を書くのは、非常に面倒臭い。
例えば、MSのVSよろしく、コントローラーの配列が出来て、コントロールのプログラムがまとめられると、非常に楽なのに。。。
[swift コントロール配列]でググってもVSらしいプログラムが見当たらない。

あきらめて、フルでプログラム書こうとした矢先、delegateなら出来んじゃね?いや、そういう用途じゃね?シランの俺だけ??とか思って、意地でプログラミングしたら、すんなりできてしまった。

備忘録

    • UITextFieldDelegate を継承
    • delegateしたいコントローラーを登録
    • func textFieldDidBeginEditing(textField: UITextField)
    • textField変数にて、どのフィールドか判断。Restoration IDを利用しました。
    • 処理分岐
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        // delegeteを使いたいコントローラー登録
        self.txtField01.delegate = self // Restoration ID : t01
        self.txtField02.delegate = self // Restoration ID : t02
        self.txtField03.delegate = self // Restoration ID : t03
    }

    
    func textFieldDidBeginEditing(textField: UITextField) {
        if textField.restorationIdentifier != nil {
            let txtIdentifer = textField.restorationIdentifier!
            if let idtr = txtIdentifer.rangeOfString("t01"){
                // 処理
            }

果たしてこれで良いのかは、しりませぬ。
ただ、同じ事を何度も書く手間は回避されたというお話でした。