So Im trying to use two separate pickers in one single view. The second set of data will update based on the choice in the first view picker. My issue is that every time I select something in the second view picker it changes the selection in the first one. How do I keep the data in the first from changing when I make a selection in the second row.
import UIKit
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate{
@IBOutlet weak var see: UITextField!
var pick = ["1", "2", "3", "4"]
var picker = UIPickerView()
var picker2 = UIPickerView()
@IBOutlet weak var see2: UITextField!
var viewone = ["1", "2", "3"]
var viewtwo = ["1", "2", "3"]
override func viewDidLoad() {
super.viewDidLoad()
picker.delegate = self
picker.dataSource = self
picker2.delegate = self
picker2.dataSource = self
see.inputView = picker
see2.inputView = picker2
picker.tag = 1
picker2.tag = 2
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView.tag == 1 {
return pick.count
}else if pickerView.tag == 2{
if see.text == "1"{
return viewone.count
}else if see.text == "2"{
return viewtwo.count
}else{
return 1
}
}else{
return 1
}
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
see.text = pick[row]
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView.tag == 1{
return "\(pick[row])"
}else if pickerView.tag == 2{
if see.text == "1"{
return "\(viewone[row])"
}else if see.text == "2"{
return "\(viewtwo[row])"
}else{
return nil
}
}else{
return nil
}
}