[SwiftUI] 커스텀 backbutton시 슬라이드해서 뒤로가기

서희찬·2023년 9월 5일
0

swiftUI

목록 보기
1/6

backbutton을 만들어서 사용하니 뒤로가기 슬라이드가 안되는 문제점에 봉착했다...

해결법은 스위프트코딩클럽에 질문을 남겨서 해결하였다

다른 이들도 쉽게 해결했으면 해서 글을 남긴다..

질문 내용


.navigationTitle("앱 설정")
            .navigationBarBackButtonHidden(true)
            .navigationBarItems(leading: Button(action: {
                self.presentationMode.wrappedValue.dismiss()
            }) {
                Image(systemName: "chevron.left")
                    .foregroundColor(Color(UIColor(red: 0.38, green: 0.38, blue: 0.45, alpha: 1)))
                Text("뒤로")
                    .foregroundColor(Color(UIColor(red: 0.38, green: 0.38, blue: 0.45, alpha: 1)))
            })

위와 같이 커스텀 네비게이션 백버튼을 만들었는데
.navigationBarBackButtonHidden(false)했을때와 다르게
슬라이드해서 뒤로갈 수 가 없더라구요 ㅠ

커스텀 백버튼구현하면서 슬라이드 뒤로가기 구현하는 방법이 따로 있을까요?


이와 같이 질문을 했는데
해결법은 간단했다.

바로 아무곳에나 extension을 추가하면 되는데
바로 이 extension이다.

extension View {
    public func currentDeviceNavigationViewStyle() -> AnyView {
        if UIDevice.current.userInterfaceIdiom == .pad {
            return AnyView(self.navigationViewStyle(DefaultNavigationViewStyle()))
        } else {
            return AnyView(self.navigationViewStyle(StackNavigationViewStyle()))
        }
    }
}

바로 이 View를 Extension관리하는 곳에 넣으면 어디에서나 뒤로가기 슬라이드로 가능하다!

추가로

navigationBarItems가 deprecated 됐다는 소리를 들었다..
이를 Toolbar로 바꾸는 법과 SwiftUI에서 뒤로가기 만든것에 대해서는 다음 게시글에 작성하겠다!

profile
Developing For Our Lives, 세상에 기여하는 삶을 살고자 개발하고 있습니다

0개의 댓글