Skip to main content

Model

  • Model은 Data와 Logic만이 들어있는 형태이다.

Game 모델 정의후 데이터 바인딩

struct Game {
var target: Int = 42
var score: Int = 0
var round: Int = 1

func points(sliderValue: Int) -> Int {
return 999
}
}
  • View에서 사용될 target, score, round 데이터를 담는 변수를 정의한다.
  • slider값에 따라 포인트를 돌려주는 함수를 정의한다. 임시로 999로 선언하였다.

ContnetView에서 바인딩

  • SwiftUI는 state 변수와 뷰를 바인딩하여 sync를 맞춘다는 것을 기억하자
@State private var game: Game = Game()

var body: some View {
VStack {
Text(String(game.target))
}

Button(action: {
//... 생략
})
.alert(isPresented: $alertIsVisible,
content: {
let roundedValue: Int = Int(sliderValue.rounded())
return Alert(
title: Text("Hello There!"),
message: Text("This slider's value is \(rounndedValue).\n)" + "You scored \(game.points(sliderValue: rountedValue)) points this rountd.",
dismissButton: .default(Text("Awesome!"))
)
}
)
}