[iOS] iOS 15 이상 SwiftUI 버전 대응하기

유인호·2024년 6월 22일
1

iOS

목록 보기
56/64

0. 서론

이전 포스팅에서 나는 iOS 15까지 대응하는것이 적절하다고 결론을 지을 수 있었다. SwiftUI를 기준으로, iOS 15부터 현재까지 가장 버전 대응을 해야 하는건 많지만, 가장 눈에 뛰는건 한 가지가 있다고 생각한다. 바로 Navigation이다.

Navigation의 경우 iOS 15까지는 NavigationView, 이후는 NavigationStack을 사용한다.

버전 대응에 있어 가장 골칫덩어리인 이 녀석을 조금 더 쉽게 버전 대응을 할 수 있도록 만들어보자.

1. Navigation

struct NavigationWrapper<Content: View>: View {
    let content: () -> Content

    var body: some View {
        if #available(iOS 16.0, *) {
            NavigationStack {
                content()
            }
        } else {
            NavigationView {
                content()
            }
        }
    }
}

// useage
NavigationWrapper {
     HomeView()
}

클로저로 뷰를 받아오고 있고, body에 분기처리를 해서 버전대응을 할 수 있을 것이다.

profile
🍎Apple Developer Academy @ POSTECH 2nd, 🌱SeSAC iOS 4th

0개의 댓글