Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
单独视图中表单中的SwiftUI可编辑列表(如选择器)_Swift_Xcode_List_View_Swiftui - Fatal编程技术网

单独视图中表单中的SwiftUI可编辑列表(如选择器)

单独视图中表单中的SwiftUI可编辑列表(如选择器),swift,xcode,list,view,swiftui,Swift,Xcode,List,View,Swiftui,我想从一个类似于选择器的表单中访问一个可编辑列表,其中表单中只显示一个条目,如果单击该条目,您将看到所有可用的选项 如果我在表单中使用列表,它的行为会有所不同。如何修改我的代码 struct ContentView: View { @State var listItems = ["1", "2", "3"] @State var pickerIndex = 0 var body: some View {

我想从一个类似于选择器的表单中访问一个可编辑列表,其中表单中只显示一个条目,如果单击该条目,您将看到所有可用的选项

如果我在表单中使用列表,它的行为会有所不同。如何修改我的代码

struct ContentView: View {
    @State var listItems = ["1", "2", "3"]
    @State var pickerIndex = 0
    
    var body: some View {
        
        NavigationView {
            
            Form{
                Section{
                    
                    //this is how I want it to be: one entry in the Form
                    Picker(selection: self.$pickerIndex, label: Text("Picker")){
                        Text("1").tag(0)
                        Text("2").tag(1)
                        Text("3").tag(2)
                    }
                    
                    //this is not how I like it
                    List {
                        ForEach(listItems, id: \.self) { (item) in
                            Text(item)
                        }.onMove { (indexSet, index) in
                            self.listItems.move(fromOffsets: indexSet,
                                                toOffset: index)
                        }
                    }
                }
            }
                
            .navigationBarTitle(Text("Example"))
            .navigationBarItems(trailing: EditButton())
        }
    }
}

复制picker的原因是什么?我希望用户能够更改列表中项目的顺序。我不能用选择器来做这件事。您可能想看看如何在表单中创建自定义选择器。@pawello2222谢谢!正是我要找的!唯一的问题是我无法单击EditButton()的“完成”。“编辑”有效。@1在此自定义选择器中,仅管理presentationMode。您可能需要添加editMode变量和管理(
.environment(\.editMode,…)
),复制picker的原因是什么?我希望用户能够更改列表中项目的顺序。我不能用选择器来做这件事。您可能想看看如何在表单中创建自定义选择器。@pawello2222谢谢!正是我要找的!唯一的问题是我无法单击EditButton()的“完成”。“编辑”有效。@1在此自定义选择器中,仅管理presentationMode。您可能需要添加editMode变量和管理(
.environment(\.editMode,…)