Project 9: Navigation

Navigation 에 대해 자세하게 알아보는 기술 프로젝트이다.

Day 44

  1. path가 기본 타입의 배열인 경우, removeAll() 메서드를 사용.
  2. NavigationPath인 경우, 새로운 인스턴스를 생성하여 할당하기.
@State private var path = NavigationPath()
//이후 초기화하고 싶으면 
path = NavigationPath()

@Binding 프로퍼티 래퍼

상위 뷰(@State 프로퍼티 래퍼가 정의된 뷰) 바깥(하위 뷰)에 있는 뷰에 대해 전달하고 수정할 수 있음.

@State private var wifiEnabled = false

...

VStack {
    Toggle(isOn: $wifiEnabled) {
        Text("Enable wifi")
    }
    TextField("Enter user name", text:$userName)
    //바인딩을 전달
    wifiImageView(wifiEnabled: $wifiEnabled)
}

...

struct wifiImageView: View {

    //상위에서 정의된 @State 바인딩을 저장
    @Binding var wifiEnabled: Bool

    var body: some View {
        Image(systemName: wifiEnabled? "wifi" : "wifi.slash")
    }
}

Codable을 사용하여 스택을 저장할 수도 있고, 로드할 수도 있다.

[참고]

https://developer.apple.com/documentation/swiftui/navigationpath

카테고리:

업데이트: