SwiftUI Dismiss несколько модальных листов - PullRequest
2 голосов
/ 09 октября 2019

Я использую .sheet(isPresented: self.$showModal) в своем корневом представлении, чтобы представить модальное. В модальном режиме я использую NavigationView, чтобы провести пользователя по различным страницам (для создателя профиля пользователя).

На последней странице моего стека навигации я использую @Environment(\.presentationMode) var presentationMode и кнопку, которая вызывает self.presentationMode.wrappedValue.dismiss(), чтобы закрыть модал. Тем не менее, это только отклоняет последнюю страницу в стеке навигации, и я просто в конечном итоге на предыдущей странице. То, что я хочу сделать, это закрыть весь стек навигации и в конечном итоге вернуться к корневому представлению.

Проведите вниз, чтобы отклонить модальный режим, чтобы получить желаемый результат, но я хочу сделать это программно с помощью кнопки.

Возможно ли это в данный момент в SwiftUI, или это проблема с использованием NavigationView в пределах модального листа?

Ответы [ 2 ]

1 голос
/ 09 октября 2019

Вы можете передать showModal в качестве привязки на следующие экраны, и вместо использования presentationValue установите для showModal значение false.

0 голосов
/ 09 октября 2019
@State private var modalOpen: Bool = false

.sheet(isPresented: self.$modalOpen, onDismiss: {
            // code that triggers when modal is closed
        }) {
        Button(action: {
            self.modalOpen.toggle()
        }) {
           Text("Schließen")
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...