【问题标题】:How to make a button clickable to another view controller only with textfield如何仅使用文本字段使按钮可点击到另一个视图控制器
【发布时间】:2019-11-19 09:20:59
【问题描述】:

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

【问题讨论】:

    标签: swift swiftui swiftui-list


    【解决方案1】:

    您可以使用 .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/

    【讨论】:

    • 可以改变textField的宽高吗?还是根据用户输入调整大小?
    • 您可以将我的示例中的 TextField("Test", text: self.$text) 替换为任何其他 SwiftUI 视图。唯一重要的是,如果您使用 @EnvironmentObject 并想在 .sheet 视图中使用它,那么您必须将其传递给 .sheet 视图,如下所示: TextField("Test", text: self.$text ).environmentObject(eO)
    • 你能更新你的代码吗?它根本不适合我
    • 我更新了我的代码。现在在 .sheet 中使用自定义视图。 View 中的 TextField 被设置为看起来更大。
    • 现在的问题是文本域内的文本也太大了。需要的是一个带有小文本的大文本字段
    猜你喜欢
    • 2012-11-04
    • 2020-10-23
    • 2013-04-25
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多