Как я могу перейти на другую страницу с помощью picker view

#ios #swift #pickerview

#iOS #swift #просмотр выбора

Вопрос:

я использую здесь условие переключения для перехода на другую страницу с помощью режима выбора, и я уже упоминал об этом в своем контроллере, но это просто переход на одну из страниц, когда я нажимаю на второй вариант в режиме выбора, он выводит меня на ту же страницу, что и выбранный. я создаю переменную, вызывающую 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!)
    }

}
  

Ответ №1:

Возможно, вы не обновляете значение optionSelector при прокрутке pickerView.

Измените optionSelector значение в pickerView delegate методе как:

 - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
     // put your logic here.
    self.optionSelector = row
}
  

Ответ №2:

возможно, у вас неверное значение в 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!)
 }

}