我正在使用此处切换条件,使用选取器视图导航到另一个页面,而我已经在控制器中提到了它,但是当我在选取器视图中按第二个选择时,它只是导航到其中一个页面,所以我进入了同一页的选择之一。 我创建了一个调用optionSelector的变量,并给了他0值,并且进行了切换,但仍在一页上工作。
@IBAction func donePressed(_ sender: Any) {
mainPV.isHidden = true
doneBtn.isHidden = true
optionV.isHidden = true
switch optionSelector{
case 0:
FiltersController.instance.showAreaFilter(nc: self.navigationController!)
case 1:
FiltersController.instance.showTrainStations(nc: self.navigationController!)
case 2:
FiltersController.instance.showMapFilter(nc: self.navigationController!)
default:
FiltersController.instance.showResidintialFilter(nc: self.navigationController!)
}
}
答案 0 :(得分:0)
您可能没有在pickerView滚动条上更新optionSelector
的值。
将optionSelector
方法上的pickerView delegate
值更改为:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
// put your logic here.
self.optionSelector = row
}
答案 1 :(得分:0)
optionSelector中的值可能不正确
您可以通过以下方式使用选择器视图的选定值:
// Assuming you only have 1 component
// By default you only have 1 component
pickerView.selectedRowInComponent(0)
实际上,您完成的方法将是:
@IBAction func donePressed(_ sender: Any) {
mainPV.isHidden = true
doneBtn.isHidden = true
optionV.isHidden = true
switch pickerView.selectedRowInComponent(0) {
case 0:
FiltersController.instance.showAreaFilter(nc: self.navigationController!)
break
case 1:
FiltersController.instance.showTrainStations(nc: self.navigationController!)
break
case 2:
FiltersController.instance.showMapFilter(nc: self.navigationController!)
break
default:
FiltersController.instance.showResidintialFilter(nc: self.navigationController!)
}
}