Programming (C++)/XCode, SwiftUI

Environment, ObservableObject

맑은 눈의 우사미 2024. 7. 8. 23:43
반응형
import SwiftUI

struct ContentView: View {
    @StateObject var demoData: DemoData = DemoData()
    let speedsetting = SpeedSetting()

    var body: some View {
        Text("")
        VStack{
            SpeedControlView()
            SpeedDisplayView()
        }
        .environmentObject(speedsetting)
    }
}

class SpeedSetting: ObservableObject {
    @Published var speed = 0.0
}

struct SpeedControlView: View {
    @EnvironmentObject var speedsetting: SpeedSetting
    
    var body: some View {
        Slider(value: $speedsetting.speed, in: 0...100)
    }
}

struct SpeedDisplayView: View {
    @EnvironmentObject var speedsetting: SpeedSetting
    var body: some View {
        Text("speed = \(speedsetting.speed)");
    }
}

반응형