ObservedObject에 관한 첫 번째 게시글을 보시려면 여기를 클릭해주세요.
ObservedObject
저번 게시물에서는 ObservedObject
를 이용해서 Timer
를 만들어 봤습니다. 이번에는 다른 예시를 통해서 한번 더 확실하게 배워보도록 하겠습니다. :)
저번 timer
를 만들 때처럼 새로운 Swift
파일을 만들어주고 'UserSetting
'으로 정해줬습니다
//UserSetting View
import Foundation
import SwiftUI
import Combine
class UserSetting: ObservableObject{
@Published var score: Int = 0
}
score
을 정수 0
으로 정해줬고, 버튼을 클릭할 때마다 score
이 올라가도록 하려고 합니다.
//ContentView
import SwiftUI
struct ContentView: View {
@ObservedObject var userSetting = UserSetting()
var body: some View {
VStack {
Text("\(self.userSetting.score)")
.font(.largeTitle)
}
}
}
이렇게 캔버스에 스코어를 표시하는데 까지는 성공했습니다. 이제 버튼을 만들고 그 버튼을 클릭할 때마다 스코어가 증가할 수 있게 만들어 보겠습니다,
VStack {
Text("\(self.userSetting.score)")
.font(.largeTitle)
Button("클릭시 Score 증가") {
self.userSetting.score += 1
}
}
실제로 Score value
가 변경되면 뷰를 자동으로 업데이트하게 되어서 화면이 구성되게 된 것입니다.
이렇게 ObservableObject
, ObservedObject
, Publ
ished에 대해 알아봤습니다.
다음 게시물에서는 environment
가 무엇인지 알아보도록 하겠습니다.
읽어주셔서 감사합니다🤟
다음 게시글👇🏻
참고하면 좋은 게시글👇🏻
'SWIFTUI > Grammar' 카테고리의 다른 글
SwiftUI : #2 MVVM의 간단한 예제 (1) | 2021.02.17 |
---|---|
SwiftUI : #1 디자인 패턴 과 MVVM (Design Patterns and MVVM) (0) | 2021.02.15 |
SwiftUI : #1 ObservedObject '간단한 타이머 만들기' (0) | 2021.02.14 |
SwiftUI : State and Binding '클릭시 화면 변경' (1) | 2021.02.12 |
SwiftUI : #3 Understanding @Binding (0) | 2021.02.12 |