Home > AI > IOS > SwiftUI >

@ObservedObject in many views

Example :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import SwiftUI
 
 
struct ContentView: View {
    @ObservedObject var model = ContentViewModel()
 
    var body: some View {
        // change @ObservedObject value
        Text("ContentView")
            .frame(width: 100, height: 100)
            .background(Color.blue)
            .onTapGesture {
                model.isReady.toggle()
            }
         
        // change @ObservedObject value
        SaleView(model: model)
         
         
        // access @ObservedObject value
        Text(String(model.isReady))
    }
}
 
 
class ContentViewModel: ObservableObject {
    @Published var isReady = true
}
 
 
struct SaleView: View {
    @ObservedObject var model: ContentViewModel // can only declare, cannot initialize a new model which would be dependent.
 
    var body: some View {
 
        Text("change")
            .frame(width: 100, height:100)
            .background(Color.orange)
            .onTapGesture {
                model.isReady.toggle()
            }
    }
}

Leave a Reply