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가 생성되는 것을 막을 수 있다.
반응형