2016-10-08 48 views
0

我正在製作一個應用程序,用戶可以選擇在同一個視圖控制器中使用兩個UIPickers。如何才能做到這一點。我想要一個選擇器顯示海灘名稱,另一個顯示海灘上居住的動物。在同一個UIViewcontroller中的兩個採樣器

感謝您的幫助

+0

使用兩個有什麼問題?你是否在如何處理委託方法中的挑選問題上掙扎? –

+0

是的,我不知道如何設置一個數組到單獨的採摘器@IanMoses – Sam

+0

委託方法包括UIPickerView作爲參數。您可以爲每個UIPicker分配一個標籤值,並在每個委託方法中檢查標籤值。例如:switch pickerView.tag {case pickerOneTagValue://在此處執行某些操作case pickerTwoTagValue://在此處執行其他操作default:break} –

回答

0

這裏有一個快速指導,這樣做:

1.Initialize採摘和選擇器數據集類:

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

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

2.設置代表,數據來源和標籤(在viewDidLoad中)。行

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

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

3.設定數

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爲每一行

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] 

    } 

} 

當然數據,這在你的一切之上可以設置拾取器視圖,但這應該是所有需要關注的兩個拾取器視圖。

相關問題