[SwiftUI]navigationBarItems가 deprecated..? 그리고 페이지 이동

서희찬·2023년 9월 5일
0

swiftUI

목록 보기
2/6

이전 포스트에 이어서 navigationBarItems가 deprecated에 대해서 말하겠다.
이는 이제 사용하지 않고 Toolbar를 사용하는데 바로 적용한것을보자

기존 코드

.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)))
            })

개선 코드

            .toolbar {
                ToolbarItem(placement: .navigationBarLeading) {
                    Button(action: {
                        self.presentationMode.wrappedValue.dismiss()
                    }) {
                        HStack {
                            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)))
                        }
                    }
                }
            }

이와 같이 toolbar를 사용해야한다...

이제 여기 있는 presentaationMode를 보자

페이지 이동

상단 view에 아래를 추가하고 이와 같이 작성해주면된다.

    @Environment(\.viewController) private var viewControllerHolder: UIViewController?

그리고 이를 적용한 바는

            .navigationTitle("앱 설정")
            .navigationBarBackButtonHidden(true)
            .toolbar {
                ToolbarItem(placement: .navigationBarLeading) {
                    Button(action: {
                        self.presentationMode.wrappedValue.dismiss()
                    }) {
                        HStack {
                            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)))
                        }
                    }
                }
            }
            
            ```:
            이와 같이 해결가능!
profile
Developing For Our Lives, 세상에 기여하는 삶을 살고자 개발하고 있습니다

0개의 댓글