This is what I used for single selection for SwiftUI ForEach
@State private var selectedTimeSlotBtn: Int = 0
@State private var timeSlots = ["15s","30s","60s","∞"]
ForEach(0..<timeSlots.count) { item in
Button {
self.selectedTimeSlotBtn =item
} label: {
Text(timeSlots[item])
.frame(width: 39, height: 26, alignment: .center)
.foregroundColor(Color.white)
.background(self.selectedTimeSlotBtn == item ? Color("clifie_light_green_com") : Color("clifie_dark_gray"))
.cornerRadius(12)
.padding(.trailing, 2)
.padding(.leading, 2)
}
}
Pickerin aForm, which is inNavigationView. See for example in stackoverflow.com/a/58881338/12299030