मैं SwiftUIExtensions लाइब्रेरी का उपयोग कर रहा हूं और छवि को "StaggeredGridView" में क्लिक करने योग्य बनाना चाहता हूं जिसमें एक नया दृश्य प्रस्तुत किया गया है क्लिक की गई छवि और उसके साथ कुछ संबंधित जानकारी।

वर्तमान में मैं नीचे दिए गए कोड के रूप में काम कर रहा हूं, लेकिन फिर भी यह सुनिश्चित नहीं है कि डेटा कैसे पास किया जाए (सूचकांक - जो मूल रूप से यहां छवि का नाम है)।

var body: some View {
    Grid(1...20, id: \.self) { index in
        Image("\(index)")
            .resizable()
            .scaledToFit()
            .onTapGesture(count: 2) {
                // Action on Double tapped

                self.showingDetails.toggle()
        }
            .sheet(isPresented: self.$showingDetails) {
                    ProductDetails()
                }

    }

मेरा उत्पाद दृश्य नीचे जैसा है:

import SwiftUI

struct ProductDetails: View {
    var body: some View {
        Text("Detail")
    }
}

एक्सकोड संस्करण: एक्सकोड 11.3

1
NS1518 26 पद 2019, 08:42

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप index को ProductDetails में पास करना चाहते हैं, तो आप इसे निम्न तरीके से कर सकते हैं:

@State var currentIndex = 0
var body: some View {
    Grid(1...20, id: \.self) { index in
        Image("\(index)")
            .resizable()
            .scaledToFit()
            .onTapGesture(count: 2) {
                // Action on Double tapped
                self.currentIndex = index
                self.showingDetails.toggle()
        }
            .sheet(isPresented: self.$showingDetails) {
                    ProductDetails(selection: self.$currentIndex)
                }

    }


struct ProductDetails: View {
    @Binding var selection: Int
    var body: some View {
        Text("Detail \(selection)")
    }
}
0
Asperi 26 पद 2019, 08:26