Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用绑定关联Swift枚举?_Swift_Swiftui - Fatal编程技术网

如何使用绑定关联Swift枚举?

如何使用绑定关联Swift枚举?,swift,swiftui,Swift,Swiftui,我有一个GroupView,它接受绑定作为参数,因为我希望GroupView修改枚举中的数据 有人能帮我解决这个问题吗 import SwiftUI struct ContentView: View { @ObservedObject var viewModel = ViewModel() var body: some View { VStack { GroupView(group: /* What do i put here? */)

我有一个
GroupView
,它接受绑定作为参数,因为我希望GroupView修改枚举中的数据

有人能帮我解决这个问题吗

import SwiftUI
struct ContentView: View {
    @ObservedObject var viewModel = ViewModel()
    var body: some View {
        VStack {
            GroupView(group: /* What do i put here? */)  // <----------------
        }
    }
}

struct GroupView: View {
    @Binding var group: Group
    var body: some View {
        Text("Hello World")
    }
}

class ViewModel : ObservableObject {
    @Published var instruction: Instruction!
    init() {
        instruction = .group(Group(groupTitle: "A Group struct"))
    }
}

enum Instruction {
    case group(Group)
}
struct Group { var groupTitle: String }
导入快捷界面
结构ContentView:View{
@ObservedObject var viewModel=viewModel()
var body:一些观点{
VStack{

GroupView(group:/*我在这里放什么?*/)/好吧,这肯定会有用……但可能有更好的方法解决您的问题。但要确定这一点,没有人比您处于更好的位置。因此,我只回答您关于如何传递绑定的问题

struct ContentView:View{
@ObservedObject var viewModel=viewModel()
var body:一些观点{
VStack{
GroupView(组:viewModel.groupBinding)
}
}
}
类ViewModel:ObservableObject{
@发布的var指令:指令!
init(){
指令=.group(组(组标题:“组结构”))
}
var-groupBinding:Binding{
返回绑定(获取:{
如果案例组(设g)=自我指导{
返回g
}否则{
返回组(groupTitle:)
}
},集:{
self.instruction=.group($0)
})
}
}

好吧,这肯定会奏效……但可能有更好的方法解决您的问题。但要确定这一点,没有人比您更适合。因此,我将回答您关于如何通过绑定的问题

struct ContentView:View{
@ObservedObject var viewModel=viewModel()
var body:一些观点{
VStack{
GroupView(组:viewModel.groupBinding)
}
}
}
类ViewModel:ObservableObject{
@发布的var指令:指令!
init(){
指令=.group(组(组标题:“组结构”))
}
var-groupBinding:Binding{
返回绑定(获取:{
如果案例组(设g)=自我指导{
返回g
}否则{
返回组(groupTitle:)
}
},集:{
self.instruction=.group($0)
})
}
}

这是编译吗?啊..如果让你进入绑定,我没有意识到这很好!是的,出价初始值设定项给了你很大的发挥空间;-)你能返回一个可选绑定并只显示组视图(如果不是零)并强制执行可选绑定吗?Getter和Setter的东西也很酷。这应该是可能的。起初我想到了我们正在绑定,但由于OP询问绑定,我保留了原样的答案。这个编译吗?啊..如果让你进入绑定,你就移动了,我没有意识到这很好!是的,出价初始值设定项给了你很大的发挥空间;-)你能返回一个可选绑定并仅显示组视图(如果不是零)并强制执行可选的吗?Getter和Set这件事也很酷。这应该是可能的。起初我想使用绑定,但因为OP问到了绑定,我留下了原样的答案。