web-dev-qa-db-fra.com

Comment présenter une vue plein écran dans SwiftUI?

J'ai travaillé sur une connexion view, maintenant je veux présenter le view après la connexion, mais je ne veux pas que l'utilisateur ait la possibilité de revenir à la connexion view. Dans UIkit j'ai utilisé present(), mais il semble que dans SwiftUIpresentation(_ modal: Modal?) le view ne prend pas tout l'écran. Navigation n'est pas non plus une option.

Je vous remercie!

7
Sorin Lica

J'ai fait cette extension pour moi. Tous les commentaires/idées sont les bienvenus. :)

https://github.com/klemenkosir/SwiftUI-FullModal

Usage

struct ContentView: View {

    @State var isPresented: Bool = false

    var body: some View {
        NavigationView {
            Button(action: {
                self.isPresented.toggle()
            }) {
                Text("Present")
            }
            .navigationBarTitle("Some title")
        }
        .present($isPresented, view: ModalView(isPresented: $isPresented))
    }
}

struct ModalView: View {

    @Binding var isPresented: Bool

    var body: some View {
        Button(action: {
            self.isPresented.toggle()
        }) {
            Text("Dismiss")
        }
    }
}
0
Klemen Košir