-2

我在这里使用切换条件来使用选择器视图导航到另一个页面,并且我已经在我的控制器中提到了它,但是当我在选择器视图中按下第二个选项时它只是导航到其中一个页面,它会将我带到同一页面选择之一。我创建了一个调用 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!)
    }

}
4

2 回答 2

0

您可能在 optionSelector 中没有正确的值

您可以通过以下方式使用选择器视图的选定值:

// Assuming you only have 1 component
// By default you only have 1 component
pickerView.selectedRowInComponent(0)

因此,您的 done 方法将是:

@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!)
 }

}
于 2019-04-07T11:33:35.847 回答
0

您可能不会更新optionSelectorpickerView 滚动的值。

optionSelector将方法的值更改pickerView delegate为:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
     // put your logic here.
    self.optionSelector = row
}
于 2019-04-07T11:14:44.133 回答