Создание пользовательских данных из .sheet (isPresented) из массива - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь, чтобы пользователь щелкнул изображение и переместил его в другое представление, в котором оно отображает одно и то же изображение и текст из массива в этом представлении, и каждый раз, когда они щелкают изображение в представлении прокрутки, в окне появляется эта информация. Он возьмет данные из массива и покажет их на следующем экране с правильным элементом из каждого переключателя.

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 голосов
/ 08 февраля 2020

Вы можете добавить переменную places в подробном представлении и передать place из ForEach в пункт назначения, например: Detail(place: place) В подробном представлении привязать переменную к соответствующим представлениям

...