Here is my solution:
- in the storyboard, add two
UIPickerView
instances to your view - set the first picker’s tag as
1
and set2
for the second picker under the “Attributes Inspector” - control + drag from each picker to the top yellow view controller icon and choose
dataSource
. Repeat the same choosingdelegate
-
add
UIPickerViewDataSource
andUIPickerViewDelegate
to your view controller:class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
-
in your view controller class, create empty arrays for the pickers:
var picker1Options = [] var picker2Options = []
-
In
viewDidLoad()
, populate the arrays with your content:picker1Options = ["Option 1","Option 2","Option 3","Option 4","Option 5"] picker2Options = ["Item 1","Item 2","Item 3","Item 4","Item 5"]
-
implement the delegate and data source methods:
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { return 1 } func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { if pickerView.tag == 1 { return picker1Options.count } else { return picker2Options.count } } func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! { if pickerView.tag == 1 { return "\(picker1Options[row])" } else { return "\(picker2Options[row])" } }