struct ContentView: View { @State var count: Int = 0 var body: some View { VStack { Stepper("\(count)", value: $count) SView() CView() } .padding(30) } } struct S { var value: Int init(value: Int) { self.value = value } } struct SView: View { @State var s: S = .init(value: 42) var body: some View { Stepper("S: \(s.value)", value: $s.value) } } class C: ObservableObject { @Published var value: Int init(value: Int) { self.value = value } } struct CView: View { @ObservedObject var c: C = .init(value: 42) var body: some View { Stepper("C: \(c.value)", value: $c.value) } }
1つ目の Stepper
を増減したときに SView
はリセットされないけど CView
はリセットされる。