ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SwiftUI Sheet 56 - Sheet 열기, 닫기
    SwiftUI 100 레시피/Sheets 2022. 6. 27. 11:53

    #1. ContentView

     

    import SwiftUI

     

    struct ContentView: View {

        

        @State private var isPresented: Bool = false

        @State private var dismissed: Bool = false

        

        var body: some View {

            VStack{

                Button("Add Item"){

                    isPresented = true

                }

                .font(.largeTitle)

                Text(dismissed ? "Dismissed" : "")

                    .font(.largeTitle)

            }.sheet(isPresented: $isPresented, onDismiss: {

                dismissed = true

            }, content: {

                

                AddItemView()

            })

        }

    }

     

    struct ContentView_Previews: PreviewProvider {

        static var previews: some View {

            ContentView()

        }

    }

     

     

    #2. AddItemView

     

    import SwiftUI

     

    struct AddItemView: View {

        

        // Sheet 내리기

        @Environment(\.presentationMode) var presentationMode

        

        

        var body: some View {

            NavigationView{

                VStack{

                    Text("AddItem View")

                }.frame(maxWidth: .infinity, maxHeight: .infinity)

                    .background(Color.green)

                    .foregroundColor(.white)

                    .navigationTitle("Add Item")

                    .navigationBarItems(trailing: HStack {

                        Image(systemName: "bolt")

                        Button("Close"){

                            

                            presentationMode.wrappedValue.dismiss()

                        }

                    })

                    

            }

        }

    }

     

    struct AddItemView_Previews: PreviewProvider {

        static var previews: some View {

            AddItemView()

        }

    }

     

     

     

     

     

    댓글

Designed by Tistory.