#swift #swiftui #uipickerview
#swift #swiftui #uipickerview
Вопрос:
Я пытаюсь реализовать функцию в своем приложении.
Когда я нажимаю на свой средство выбора:
Picker(selection: $profileViewModel.education,
label: Text("Education Level")) {
ForEach(Education.levels, id: .self) { level in
Text(level).tag(level)
}
}
Это выводит меня на экран, а затем я выбираю значение (это нормально — оно работает так, как ожидалось)
Как я могу выбрать значение, которое затем выводит меня, скажем, на другой экран, чтобы я мог заполнить более подробную информацию о выбранном значении.
Например, в приведенном выше средстве выбора есть значения для выбора уровня образования, после его выбора, как я могу получить лист действий / другой экран, чтобы у меня там было текстовое поле для сохранения этих дополнительных данных, или после того, как выбор сделан, для меня появляется текстовое поле для сохранения дополнительных данных, а затем нажатие кнопки, которая приведет меня к исходному экрану средства выбора (надеюсь, это имеет смысл)?
Я пытался найти в Интернете проблему, похожую на эту, но, похоже, не могу ее найти / или, если вы можете указать мне в направлении того, что я должен изучать ?.
Попробовал следующее:
Ответ №1:
Если я правильно понял ваш сценарий, вот возможный подход (репликация протестирована с помощью Xcode 12 / iOS 14)
Picker(selection: $profileViewModel.education,
label: Text("Education Level")) {
ForEach(Education.levels, id: .self) { level in
Text(level).tag(level)
}
}
.onChange(of: profileViewModel.education) { _ in
DispatchQueue.main.async {
self.showSheet = true
}
}
.sheet(isPresented: $showSheet) {
// put here your text editor or anything
Text("Editor for (profileViewModel.education)")
}