#swiftui
Вопрос:
Хороший день.
Есть ли способ заставить дочернее представление, вызываемое из родительского представления, исчезнуть, если, скажем, условие bool верно? Я хочу, чтобы он полностью исчез, а не был скрыт с помощью непрозрачности, скрыт и т. Д.
Я хочу знать, возможно ли это, спасибо!
Комментарии:
1. Вы можете показать свой код?
2. Прямо сейчас у меня нет никакого конкретного кода, который можно было бы показать 🙂 Я просто хотел гипотетически узнать, существует ли такая вещь в SwiftUI, потому что после моих исследований в Google я смог найти только способ скрыть представление, а не заставить его исчезнуть. Но идея в том, что я хочу, чтобы childView (), который я вызываю в ContextView (), исчез после нажатия кнопки, и есть условие bool, которое устанавливается в значение true при нажатии кнопки.
3. Ах, хорошо, проверьте мой ответ. Это должно помочь.
Ответ №1:
В SwiftUI вы можете условно показать вид, подобный…
if someCondition { YourConditionalView() }
Это покажет это представление только в том случае, если someCondition
оно истинно.
Из вашего комментария…
struct YourView: View { @State var showView = true var body: some View { VStack { if showView { Text("Hello there!") } Button { self.showView.toggle() } label: { Text("Press me") } } } }
Это представление начнется с надписи «Привет!» и кнопки. При нажатии на кнопку showView
логическое значение переключается. Это приведет к тому, что метка будет добавлена/удалена из представления на основе значения showView
.
Комментарии:
1. Хм, чего я скорее хочу, так это скрыть вид, который уже виден в начале. Поэтому при запуске моего приложения отображается дочернее представление, однако, когда пользователь нажимает на кнопку, это представление исчезает.
2. @lex обновил пример того, как это использовать.
3. Это прекрасно! Ха-ха, по какой-то причине я не подумал о том, чтобы изначально сделать bool истинным и установить его в значение false/переключаться при нажатии кнопки, я буду винить в этом себя новичка. 😀 Спасибо тебе!