संरचना के बीच @binding के साथ समस्याओं
मेरे कोड में मेरे पास है:
struct Specialty {
let type:String
let color:Color
let image:Image
}
// MARK: Search
struct Search: View {
@State var show = false
@State var txt = ""
@State var index = 1
let specialtyList = [
Specialty(type: "Cardiologia", color: Color.blue, image: Image("google1") ),
Specialty(type: "Clínica Médica", color: Color.pink, image: Image("google1")),
Specialty(type: "Dermatologia", color: Color("Color"), image: Image("google1")),
Specialty(type: "Ginecologia e Obstetrícia", color: Color.pink, image: Image("google1")),
Specialty(type: "Medicina do Trabalho", color: Color.red, image: Image("google1")),
Specialty(type: "Oftalmologia", color: Color("Color"), image: Image("google1")),
Specialty(type: "Ortopedia", color: Color.pink, image: Image("google1")),
Specialty(type: "Otorrinolaringologia", color: Color.blue, image: Image("google1")),
Specialty(type: "Pediatria", color: Color.red, image: Image("google1")),
Specialty(type: "Psiquiatria", color: Color("Color"), image: Image("google1")),
Specialty(type: "Radiologia", color: Color("Color"), image: Image("google1"))
]
}
समान google1 छवियों को अनदेखा करें, मैं केवल पहले काम करने के लिए कोड प्राप्त करने की कोशिश कर रहा हूं।
फिर, खोज के दृश्य में, मेरे पास है:
ForEach(specialtyList, id: \.type){ Specialty in
NavigationLink (destination: SearchBar()){
VStack(spacing: 18) {
HStack{
Text(Specialty.type).foregroundColor(.white)
Specialty.image
.renderingMode(.original)
.resizable()
.frame(width: 35, height: 35)
}
}
}
}
स्क्रॉलव्यू के रूप में 'लेट स्पेशलिस्टलिस्ट' में जानकारी दिखाने के लिए
जैसा कि प्रत्येक प्रदर्शित दुनिया एक बटन के रूप में काम करती है, Im कोशिश कर रहा हूं कि, जब मैं इस मामले में गंतव्य (जो SearchBar () हो) पर जाऊं, तो मैं चाहता हूं कि नेविगेशनलिंक पाठ के आधार पर अलग-अलग जानकारी दिखाई जाए जो दबाया जाता है।
मैं 'स्पेशलिस्टलिस्ट' सूची में आदेश का उपयोग करके इसे कैसे कर सकता हूं और गंतव्य में, नेविगेशनलींक टेक्स्ट का वही नाम जो दबाया गया था, कैसे प्रिंट कर सकता है?
जवाब
मुझे लगता है कि यह है
नोट: प्रकार (जैसे, विशेषता, पूंजीकृत) और उदाहरण / मान (जैसे, विशेषता, नीची) के लिए एक ही नामकरण से बचने की कोशिश करें, अन्यथा यह भ्रमित और संकलक हो सकता है और आप।
ForEach(specialtyList, id: \.type){ specialty in // << named correctly
NavigationLink (destination: SearchBar(item: specialty)){ // << inject here
VStack(spacing: 18) {
HStack{
Text(specialty.type).foregroundColor(.white)
specialty.image
.renderingMode(.original)
.resizable()
.frame(width: 35, height: 35)
}
}
}
}
और अब देखने में
struct SearchBar: View {
let item: Specialty
var body: some View {
Text(item.type)
// .. other code
}
}