Выбор значения средства выбора, которое приведет к текстовому полю, SwiftUI

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