所以我試圖在一個視圖中使用兩個單獨的選擇器。第二組數據將根據第一個視圖選擇器中的選擇進行更新。我的問題是,每次我在第二個視圖選擇器中選擇某件東西時,它都會改變第一個視圖中的選擇。當我在第二行進行選擇時,如何保持數據的第一個變化。在swift中使用多個uipickerviews和ui文本
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
}
}
此擔任 如果(pickerView ==選擇器) –