I have a segmentedControl (Picker) with two segments:
struct Container: View {
@State private var selectedSegment: Segment = .first
var body: some View {
VStack {
Picker("", selection: $selectedSegment) {
ForEach(Segment.allCases, id: \.self) {
Text($0.rawValue)
}
}
.pickerStyle(.segmented)
.padding()
Spacer()
SegmentView(segment: selectedSegment)
Spacer()
}
}
}
struct SegmentView: View {
var segment: Segment
var body: some View {
switch segment {
case .first:
FirstView()
case .features:
FeaturesView()
}
}
}
In one of the segments I show a list:
struct FeaturesView: View {
private var features: [Feature]
var body: some View {
VStack {
List(features) { feature in
FeatureRow(feature: feature)
.onTapGesture {
// switch to other segment and pass in `feature`
}
}
.listStyle(PlainListStyle())
}
}
}
What I am trying to do is when the user taps on one of the rows in FeaturesView, switch to FirstView and pass in the feature.
How do I do this is SwiftUI ?
Maybe by using a Notification ?
Based on @PtitXav's comments this is what I came up with: