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