2016-10-08 5 views
0

私は同じView Controllerで2つのUIPickersを使用するオプションを持つアプリケーションを作成しています。どのようにこれを行うことができます。 1つのピッカーがビーチの名前を表示し、もう1つのピッカーがビーチに住む動物を表示したい。同じUIViewcontrollerの2つのピッカー

あなたの助け

+0

2つの使用にはどんな懸念がありますか?デリゲートメソッド内でピッカーを差別化する方法に苦労していますか? –

+0

はい、私はあなたが別のピッカーに配列を設定する方法を知らない@IanMoses – Sam

+0

代理メソッドにはパラメータとしてUIPickerViewが含まれています。各UIPickerにタグ値を割り当て、各デリゲートメソッドでタグ値をチェックできます。何かが好きです:switch pickerView.tag {case pickerOneTagValue://ここで何かする場合pickerTwoTagValue://ここで何か他のものを実行するdefault:break} –

答えて

0

のおかげでここでこれを行うにクイックガイドです:

1.Initializeピッカー、およびクラスのピッカー・データ・セット:

var pickerView1 = UIPickerView() 
var pickerView2 = UIPickerView() 

var pickerView1Data: [String] = ["Waikiki", "Long Beach", ...] 
var pickerView2Data: [String] = ["Crab", "Seal", ...] 

2.Set委譲、データはソース、およびタグ(viewDidLoad内)。各行

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

    var returnRow: String! 

    if pickerView.tag == 1 { 
     returnRow = pickerView1Data[row] 
    } else if pickerView.tag == 2 { 
     returnRow = pickerView2Data[row] 
    } 

    return returnRow 
} 

5.Capture pickerView選択もちろん

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
    // This method is triggered whenever the user makes a change to the picker selection. 

    if pickerView.tag == 1 { 

     beachTextField.text = pickerView1Data[row] 

    } else if pickerView.tag == 2 { 

     animalTextField.text = pickerView2Data[row] 

    } 

} 

の行の

pickerView1.dataSource = self 
pickerView1.delegate = self 
pickerView1.tag = 1 

pickerView2.dataSource = self 
pickerView2.delegate = self 
pickerView2.tag = 2 

3.SET番号

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

    var returnIndex: Int = 0 

    if pickerView.tag == 1 { 
     returnIndex = pickerView1Data.count 
    } else if pickerView.tag == 2 { 
     returnIndex = pickerView2Data.count 
    } 

    return returnIndex 
} 

4.Returnデータ、このあなたが他のすべての上にあるピッカーのビューを設定するために行う必要がありますが、これは2つのピッカービューを処理する必要があるすべてのものでなければなりません。

関連する問題