Search code examples
iosswiftuipickerview

Multiple separate Pickerviews in Swift


I am new to programming, so please forgive the basic nature of this question.

I am trying to put multiple picker views into the same class, but they keep coming back with the same choices.

class ViewController: UIViewController, UIPickerViewDelegate{

@IBOutlet var outgoing: UIPickerView!

var var1=["1","2"]
var var2=["a","b"]

override func viewDidLoad() {
    super.viewDidLoad()
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

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


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

    return var1.count


}


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

}

Any suggestions?


Solution

  • For displaying two components you need to change your methods like:

    func numberOfComponentsInPickerView(pickerView: UIPickerView!) ->Int
    {
           return 2
    }
    
    
    func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) ->Int
    {
        var rows = var2.count
        if component == 0
        {
            rows = var1.count
        }
        return rows;
    }
    
    
    func pickerView(pickerView: UIPickerView!, titleForRow row: Int, forComponent component: Int)->String!
    {
        var componentStr = var2[row]
        if component == 0
        {
            componentStr = var1[row]
        }
        return componentStr;
    }