본문 바로가기

Programming/SwiftUI

(3)
[SwiftUI] SwiftUI의 Lifecycle 이번에는 SwiftUI의 Lifecycle에 대해 알아보려 한다. UIViewController를 사용할 땐 아래와 같은 생명주기가 있었다. 나는 주로 viewDidLoad, viewWillAppear, viewDidAppear, viewWillDisappear, viewDidDisappear를 사용했던 것 같다. 하지만 SwiftUI를 사용하면서 기존의 UIViewController처럼 생명주기처럼 보이는 게 따로 없어서 이번 기회에 글을 작성해보려 한다. UIViewController이 궁금하다면 이 글을 참고하면 좋을 것이다. SwiftUI의 생명주기 항상 그렇듯 공식문서는 한번 확인해보자 Input and Events Input and Events | Apple Developer Documenta..
[SwiftUI] @State 이해하기 SwiftUI를 하다 보면 @State를 많이 사용하게 된다. 왜 @State를 사용하고 어떻게 사용하는지 알아보자. 먼저 @State를 사용하는 이유를 보자. 프로젝트를 만들면 볼 수 있는 코드이다. import SwiftUI struct ContentView: View { var body: some View { Text("Hello, World!") } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } 여기서 볼 수 있듯이 뷰가 전부 struct로 되어있다. 즉 불변(immutable)이다. 그렇기 때문에 변수의 값을 마음대로 변경할 수 없다. 예를 들어 버튼을 누르면 1씩..
[SwiftUI] List에서 @Binding 전달하기 전체 소스코드 이전에는 아래오 같이 배열과 id를 주고 foreach 처럼 리스트를 만들었다. var body: some View { NavigationView { List(todos){ todo in NavigationLink(destination: DetailView(todo: $todo)){ TodoRow(todo: $todo) } } } } 하지만 @Binding으로 값을 넘기려니 $todo가 들어간 부분에 Use of unresolved identifier '$todo' 라는 에러 메세지가 뜬다. todos배열은 @State로 래핑 되어있는데 그것이 문제인 것 같다. 그래서 다른 방법을 찾아봤다. StackOveflow SwiftUI dynamic List with @Binding control..