模态视图跳转

205 阅读1分钟
  • 模态按钮
struct ModalView: View {
    
    @State private var showDetailView = false
    
    var body: some View {
        
        Button {
            debugPrint("模态按钮")
            showDetailView.toggle()
        } label: {
            Text("模态跳转")
                .font(.system(size: 20))
                .foregroundColor(.white)
                .padding(.top,10)
                .padding(.bottom,10)
        }
        // 全屏模式
        .fullScreenCover(isPresented: $showDetailView, content: {
            ModalDetailView()
        })
        // 非全屏模式
//        .sheet(isPresented: $showDetailView, content: {
//
//        })
        .frame(maxWidth: .infinity)
        .background(.black)
        .cornerRadius(10)
        .padding()

        
    }
}
  • 模态视图
struct ModalDetailView: View {
    
    @Environment(\.presentationMode) var presentMode
    
    var body: some View {
        
        NavigationView {
            
            VStack {
                Text("模态视图页面")
            }
            .toolbar(content: {
                ToolbarItem(placement: .navigationBarTrailing) {
                    Button {
                        presentMode.wrappedValue.dismiss()
                    } label: {
                        Image(systemName: "chevron.down.circle.fill")
                                        .foregroundColor(.black)
                    }
                }
            })
        }
    }
}