Как можно закрыть представление из вычтенного подпредставления в SwiftUI ⇐ IOS
-
Anonymous
Как можно закрыть представление из вычтенного подпредставления в SwiftUI
Всякий раз, когда мой код становится слишком большим, SwiftUI начинает вести себя странно и генерирует ошибку:
"Компилятор не может проверить тип этого выражения в разумные сроки; попробуйте разбить выражение на отдельные подвыражения" Итак, я начал разбивать свой код на Извлеченные подпредставления. Одна из проблем, с которой я столкнулся, заключалась в том, как удалить представление из вычтенного подпредставления.
Пример: у нас есть LoginContentView. Это представление содержит кнопку. При нажатии на кнопку отображается следующее представление UsersOnlineView.
struct LoginContentView: Просмотр { @State var showUsersOnlineView = false var body: some View { Кнопка (действие: { self.showUsersOnlineView = правда }) { Text("Показать следующее представление") } .fullScreenCover(isPresented: $showUsersOnlineView, содержимое: { ПользователиОнлайнВью() }) } С другой стороны, у нас есть кнопка, которую можно извлечь для просмотра, чтобы закрыть модальное окно и вернуться к исходному виду:
импортировать SwiftUI структура UsersOnlineView: Посмотреть { var body: some View { ZStack { ВСтек { ЗакрытьВьюБаттон() } } } } структура CloseViewButton: Посмотреть { var body: some View { Кнопка (действие: { // Закрываем модальное окно }) { Текст("Закрыть вид") } } }
Всякий раз, когда мой код становится слишком большим, SwiftUI начинает вести себя странно и генерирует ошибку:
"Компилятор не может проверить тип этого выражения в разумные сроки; попробуйте разбить выражение на отдельные подвыражения" Итак, я начал разбивать свой код на Извлеченные подпредставления. Одна из проблем, с которой я столкнулся, заключалась в том, как удалить представление из вычтенного подпредставления.
Пример: у нас есть LoginContentView. Это представление содержит кнопку. При нажатии на кнопку отображается следующее представление UsersOnlineView.
struct LoginContentView: Просмотр { @State var showUsersOnlineView = false var body: some View { Кнопка (действие: { self.showUsersOnlineView = правда }) { Text("Показать следующее представление") } .fullScreenCover(isPresented: $showUsersOnlineView, содержимое: { ПользователиОнлайнВью() }) } С другой стороны, у нас есть кнопка, которую можно извлечь для просмотра, чтобы закрыть модальное окно и вернуться к исходному виду:
импортировать SwiftUI структура UsersOnlineView: Посмотреть { var body: some View { ZStack { ВСтек { ЗакрытьВьюБаттон() } } } } структура CloseViewButton: Посмотреть { var body: some View { Кнопка (действие: { // Закрываем модальное окно }) { Текст("Закрыть вид") } } }
Мобильная версия