Hi team,
I am trying to use the selection of a picker in another view.
I have put in some cleared code to try work out the issue as it appears to be in the SecondView preview section where I am getting an error Type ‘MainView’ has no member ‘Annually’
Any help here would be amazing.
Thanks
import SwiftUI
struct MainView: View {
var frequency: Period
@State var selectedFrequency = Period.Annually
var body: some View {
List {
PeriodPicker(selection: $selectedFrequency)
}
}
}
struct MainView_Previews: PreviewProvider {
static var previews: some View {
MainView(frequency: .Annually)
}
}
import SwiftUI
struct SecondView: View {
var main: MainView
var body: some View {
Text("\(main.selectedFrequency.rawValue)")
}
}
struct SecondView_Previews: PreviewProvider {
static var previews: some View {
SecondView(main: .Annually)
}
}
import SwiftUI
enum Period: String, CaseIterable, Identifiable, Codable {
case Daily
case Weekly
case Fortnightly
case Monthly
case Quarterly
case Annually
var name: String {
rawValue.capitalized
}
var id: String {
name
}
}
import SwiftUI
struct PeriodView: View {
let period: Period
var body: some View {
ZStack {
Label(period.name, systemImage: "calendar")
.padding(4)
.fixedSize(horizontal: false, vertical: true)
}
}
}
struct ThemeView_Previews: PreviewProvider {
static var previews: some View {
PeriodView(period: .Weekly)
}
}
import SwiftUI
struct PeriodPicker: View {
@Binding var selection: Period
var body: some View {
Picker("Frequency", selection: $selection) {
ForEach(Period.allCases) {
period in
PeriodView(period: period)
.tag(period)
}
}
}
}
struct PeriodPicker_Previews: PreviewProvider {
static var previews: some View {
PeriodPicker(selection: .constant(.Weekly))
}
}