Не может go на другой вид из обратного вызова - PullRequest
0 голосов
/ 04 марта 2020

В приведенном ниже коде, почему я не перехожу на страницу AppView () при вызове onDismiss? У меня в основном есть сетевой вызов в LinkController, который регистрирует кого-то, а затем мне нужно перейти к другому представлению после завершения.

struct ContentView: View {
    @State private var showLink = false
    @State private var publicToken: String?
    @State private var metadata: [String : Any]?

    var body: some View {
        Button(action: {
            self.showLink = true
        }) { Text("Add Account") }
            .sheet(isPresented: self.$showLink,
                onDismiss: {
                    // why doesn't this work
                    AppView(publicToken: self.publicToken!)
                }, content: {
                    LinkController(publicToken: self.$publicToken, metadata: self.$metadata)
                })
    }
}

1 Ответ

0 голосов
/ 05 марта 2020
 var body: some View {
        Button(action: {
            self.showLink = true
        }) { Text("Add Account") }
            .sheet(isPresented: self.$showLink,
                onDismiss: {
                    if self.publicToken != nil { self.goHome() }
                }, content: {
                    LinkController(publicToken: self.$publicToken, metadata: self.$metadata)
                })


    }

    func goHome() {
        if let window = UIApplication.shared.windows.first {
            window.rootViewController = UIHostingController(rootView: AppView(publicToken: publicToken!))
            window.makeKeyAndVisible()
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...