如何使按钮只能通过文本字段单击到另一个视图控制器

时间:2019-11-19 09:20:59

标签: swift swiftui swiftui-list

在这种情况下,如果用户单击按钮,则会弹出另一个视图控制器,其中仅包含一个textView,用户可以在其中写一些东西。

1 个答案:

答案 0 :(得分:0)

您可以使用.sheet修饰符在SwiftUI中显示类似于模式/弹出窗口的视图。

struct ContentDetail: View {
    struct Item {
        let uuid = UUID()
        let value: String
    }
    @State private var items = [Item]()
    @State private var show_modal = false
    var lectureName:String

    var body: some View {
        ZStack {
            VStack {
                Spacer()
                HStack {
                    Spacer()
                    Button(action: {
                        self.show_modal.toggle()
                    }, label: {
                        Text("✏️")
                            .font(.system(.largeTitle))
                            .frame(width: 77, height: 70)
                            .foregroundColor(Color.white)
                            .padding(.bottom, 7)

                    })
                        .background(Color.blue)
                        .cornerRadius(38.5)
                        .padding()
                        .shadow(color: Color.black.opacity(0.3),
                                radius: 5,
                                x: 3,
                                y: 3)
                }
            }
        }
        .sheet(isPresented: self.$show_modal) {
            CustomModalView()
        }
    }
}

struct CustomModalView: View {
    @State private var text = ""

    var body: some View {
        TextField("test", text: $text)
            .padding(5)
            .textFieldStyle(RoundedBorderTextFieldStyle())
            .font(.system(size: 60, design: .default))
            .multilineTextAlignment(.center)
    }
}

您可以在此处了解更多信息: https://blog.appsbymw.com/posts/how-to-present-and-dismiss-a-modal-in-swiftui-155c/

相关问题