我试图让用户单击图像并将其带到另一个视图,该视图在该视图上具有来自阵列的相同图像和文本,并且每次他们在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")
]
答案 0 :(得分:0)
您可以在“详细信息”视图中添加一个places
变量,并将place
从ForEach传递到目的地,例如:Detail(place: place)
在“详细信息”视图中,将变量绑定到相关视图