Как запустить другой процесс непрерывно после завершения модального - PullRequest
1 голос
/ 08 марта 2020

Я хочу запускать другой процесс непрерывно после отклонения модальности.

В следующем коде модал не закрывается и выполняется только последующая обработка.

Как я могу это сделать ?

Я использовал NotificationCenter и обратные вызовы, все с одинаковым результатом.

struct HomeView: View {
    @State private var modalPresented: Bool = false

    var body: some View {
        VStack {
            Button(action: {}) {
                Text("setting")
            }.sheet(isPresented: self.$modalPresented) {
                SettingView(onDismiss: {
                    self.modalPresented = false
                })
            }
        }
    }
}

struct SettingView: View {
    var onDismiss: () -> ()
    @Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>

    var body: some View {
        VStack {
            Button(action: {
                self.presentationMode.wrappedValue.dismiss()
                // The following is the logout function.
                logout()
            }) {
                Text("logout")
            }
        }
    }
}

1 Ответ

0 голосов
/ 08 марта 2020

ты имеешь в виду, как так?

struct ContentView: View {

    @State private var modalPresented: Bool = false

    var body: some View {
        VStack {
            Button(action: {
                self.modalPresented.toggle()
            }) {
                Text("setting")
                }
            .sheet(isPresented: self.$modalPresented) {
                SettingView()
//                    .onDismiss: {
//                        self.modalPresented = false
//                }
            }
        }
    }
}

struct SettingView: View {

    @Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>

    var body: some View {
        VStack {
            Button(action: {
                self.presentationMode.wrappedValue.dismiss()
                print("logout")
            }) {
                Text("logout")
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...