2错误信息PickerView
问题描述:
我在我的应用程序中使用2 Pickerview。但是他们的信息会在使用时混合使用例如:如果我在第一个选择器中选择2.row,那么系统会将第二个选择器行更改为2,反向操作相同。2错误信息PickerView
我的代码是在这里:
override func viewDidLoad() {
super.viewDidLoad()
petArray = ["A","B","C","D"]
feedTimeArray = ["1","2","3","4"]
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView.tag == 1{
return petArray.count
}
if pickerView.tag == 2 {
return feedTimeArray.count
}
return 0
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView.tag == 1 {
return petArray[row]
}
if pickerView.tag == 2{
return feedTimeArray[row]
}
return ""
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
selectedFeed = feedTimeArray[row]
print(feedTimeArray[row])
if selectedFeed == feedTimeArray[1] {
//case 1
}
if selectedFeed == feedTimeArray[2] {
//case 2
}
if selectedFeed == feedTimeArray[3] {
//case 3
}
selectedPet = petArray[row]
print(petArray[row]) }
实施例:
我选择的B 系统改变第二选择器2
我选择4 系统改变的第一选择器来d
答
我认为你的didSelectRow
方法会像这样
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if pickerView.tag == 1
{
selectedFeed = feedTimeArray[row]
print(feedTimeArray[row])
if selectedFeed == feedTimeArray[1] {
//case 1
}
if selectedFeed == feedTimeArray[2] {
//case 2
}
if selectedFeed == feedTimeArray[3] {
//case 3
}
}
else if pickerView.tag == 2
{
selectedPet = petArray[row]
print(petArray[row])
}
else
{ }
}
您还可以在didselectRow中添加检查pickerview标签的条件。 – Sneha
@Sneha你和Zee的nswer解决了这个问题,谢谢! – Egrimo