从数组的.sheet(isPresented)创建自定义数据

时间:2020-02-08 16:31:02

标签: ios swiftui swiftui-navigationlink

我试图让用户单击图像并将其带到另一个视图,该视图在该视图上具有来自阵列的相同图像和文本,并且每次他们在scollview中单击图像时,该视图都会弹出该信息。它将从数组中获取数据,并将其显示在下一个视图中,并显示每个切换的正确项目。

struct practice: View {

    @State var show = false
    var place = Placeinfo

    var body: some View {

        VStack {
            ScrollView(.horizontal) {
                ForEach(place) { item in
                    HStack(spacing: 30) {
                        VStack {
                            HStack {
                                VStack {
                                    Text(item.title).font(.headline)
                                    Text(item.subtitle).font(.caption)
                                    Button(action:{
                                        self.show.toggle()
                                    }) {
                                        Image(item.image).renderingMode(.original)
                                    }.sheet(isPresented: self.$show) { Detail() }
                                }
                            }

                        }.padding(.leading)
                    }
                }
            }
        }
    }
}


struct places : Identifiable{
    var id = UUID()
    var title: String = ""
    var subtitle: String = ""
    var image: String = ""
}


let Placeinfo = [
    places(title: "beach", subtitle: "Cozumel",
           image: "beach1"),
    places(title: "beach2", subtitle: "Caribbean", image: "beach2"),
    places(title: "beach3", subtitle: "CostaRica", image: "beach3")
]

1 个答案:

答案 0 :(得分:0)

您可以在“详细信息”视图中添加一个places变量,并将place从ForEach传递到目的地,例如:Detail(place: place) 在“详细信息”视图中,将变量绑定到相关视图