Creare finestre modali in SwiftUI

Mattepuffo's logo
Creare finestre modali in SwiftUI

Creare finestre modali in SwiftUI

Oggi vediamo come aggiungere una finestra modale in SwiftUI.

Al contrario di altri linguaggi / ambienti, non c'è un componente apposito; useremo una normale View.

Quello che cambia è come viene richiamata questa View.

Iniziamo proprio col creare la view che ci farà da modal:

import SwiftUI

struct ModalAdd: View {
    @Environment(\.presentationMode) var presentationMode
    
    var body: some View {
        VStack {
            Button(action: {
                print("dismisses form")
                self.presentationMode.wrappedValue.dismiss()
            }) {
                Text("Dismiss")
            }.padding(.bottom, 50)
            Text("This is a modal")
        }
    }
}

Abbiamo messo un semplice testo e un bottone per la chiusura; potete anche scorrere in basso per chiuderla.

Per lanciare la finestra:

import SwiftUI

struct ContentView: View {
    
    @State private var showModalAdd: Bool = false
    
    var body: some View {
        NavigationView {
            VStack {
            	// CONTENUTO
            }
            .navigationBarTitle(Text("Libri"), displayMode: .inline)
            .navigationBarItems(trailing:
                HStack {
                    Button(action: {
                        self.showModalAdd = true
                    }, label: {
                        Text("Add")
                    }).sheet(isPresented: self.$showModalAdd){
                        ModalAdd();
                    }.foregroundColor(Color.black)
                }
            )
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView();
    }
}

Ho omesso il contenuto, che non riguarda l'articolo nello specifico.

Enjoy!


Share this Post

Commentami!