如何使用选择器视图导航到另一个页面

时间:2019-04-07 11:09:54

标签: ios swift pickerview

我正在使用此处切换条件,使用选取器视图导航到另一个页面,而我已经在控制器中提到了它,但是当我在选取器视图中按第二个选择时,它只是导航到其中一个页面,所以我进入了同一页的选择之一。 我创建了一个调用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!)
    }

}

2 个答案:

答案 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!)
 }

}