Swiftui使用自定义初始化



假设我正在制作一个看起来像这样的自定义输入元素:

struct CustomInput : View {
    @Binding var text: String
    var name: String
    var body: some View {
        TextField(name, text: $text)
            .modifier(InputModifier())
    }
}

当前,当我实例化此视图时,我需要将textname名称同时传递给参数。我希望能够使name参数可选,就像以下示例一样。

 CustomInput("Some name", $text)

通常我会使用初始方法。但是我不确定如何处理初始化功能中的 @Binding之类的属性包装器。

关于我如何实现这一目标的任何想法?

您可以像这样编写您的初始器:

struct CustomInput : View {
    @Binding var text: String
    var name: String
    init(_ name: String, _ text: Binding<String>) {
        self.name = name
        // Beta 3
        // self.$text = text
        // Beta 4
        self._text = text
    }
    var body: some View {
        TextField(name, text: $text)
    }
}

最新更新