behan의 개인적인 기술 블로그

SwiftUI ) NavigationLink & View 생성(feat.LazyView) 본문

iOS/SwiftUI

SwiftUI ) NavigationLink & View 생성(feat.LazyView)

behan 2022. 1. 11. 18:01
반응형

NavigationLink를 사용하면 destination에 지정된 뷰가 미리 생성된다.

미리생성되는 것을 막기 위해서 LazyView라는 struct를 만들어 감싸 사용한다.

View를 parameter로 받기 위해서는 Generic형태로 만들어야 한다.

 

[LazyView]

struct LazyView<Content: View>: View {
    let build: () -> Content
    init(_ build: @autoclosure @escaping () -> Content) {
        self.build = build
    }
    var body: Content {
        build()
    }
}

사용할 때는 LazyView(SampleView()) 이런 방식으로 기존 뷰를 LazyView로 감싸서 사용한다.

이렇게하면 미리 destinationView가 생성되는 것을 막을 수 있다.

LazyView 감싼 후

참고 : https://yeonduing.tistory.com/47

반응형