[swift] SwiftUI 뷰의 데이터 변경
SwiftUI는 데이터가 변경될 때 자동으로 뷰를 업데이트하는 강력한 기능을 제공합니다. 이는 사용자 인터페이스와 데이터 간의 양방향 바인딩을 이용하며, 뷰와 모델 간의 결합을 간소화합니다.
상태(State) 관리
SwiftUI에서 뷰와 함께 사용할 수 있는 다양한 상태 관리 방법이 있습니다. 이 중 가장 간단한 방법은 @State
속성 래퍼를 사용하는 것입니다. @State
속성 래퍼를 사용하면 해당 데이터에 대한 변경 사항이 발생할 때마다 뷰가 자동으로 다시 렌더링되어 실시간으로 반영됩니다.
아래는 @State
를 사용하여 텍스트 필드의 입력 값을 변화시키는 예제 코드입니다.
struct ContentView: View {
@State private var text: String = ""
var body: some View {
TextField("Enter text", text: $text)
.padding()
}
}
바인딩(Binding)
@State
속성 래퍼는 뷰 내에서 사용하는 상태를 관리하는데 적합하지만, 뷰간에 데이터를 전달하고 업데이트하는 데에도 유용합니다. 이 때 Binding
을 사용하여 손쉽게 두 뷰 사이의 데이터 흐름을 설정하고, 변경된 데이터를 실시간으로 반영할 수 있습니다.
아래는 @Binding
을 사용하여 상태를 다른 뷰에 전달하는 예제 코드입니다..
struct DetailView: View {
@Binding var detailText: String
var body: some View {
TextField("Enter detail", text: $detailText)
.padding()
}
}
struct ContentView: View {
@State private var text: String = ""
var body: some View {
DetailView(detailText: $text)
}
}
요약
SwiftUI에서는 @State
와 @Binding
을 통해 뷰의 데이터 변경을 쉽게 관리할 수 있습니다. 이를 통해 사용자가 입력한 데이터나 앱 내부의 상태 변경 등을 실시간으로 반영하고, 간단하고 직관적인 사용자 경험을 제공할 수 있습니다.
위의 내용은 SwiftUI에서 뷰의 데이터 변경에 대한 간단한 소개였습니다. 더 자세한 정보는 SwiftUI 공식 문서를 참조해 주세요.