Custom Navigation Swipe 뒤로가기

Little_Machine_Human_·2025년 1월 14일

SwiftUI에서 Custom NavigationTitleView를 사용하게되면

예쁘게 상단 바 타이틀을 바꿀 수 있지만
back버튼을 hidden처리하기 때문에 필연적으로 Swipe기능이 막히게된다.
이는 UX적으로 좋지 못하다.

따라서 아래 익스텐션을 사용하면 hidden처리하더라도 뒤로가기를 사용할 수 있다.
물론 저 extenstion도 마찬가지로 커스텀해서 특정뷰에서는 막긴해야하니,

여러모로 SwiftUI는 편리하면서도 손이 많이간다.

extension UINavigationController: ObservableObject, UIGestureRecognizerDelegate {
    open override func viewDidLoad() {
        super.viewDidLoad()
        interactivePopGestureRecognizer?.delegate = self
    }
    
    public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
        return viewControllers.count > 1
    }
}
profile
while(true){ 가족(); 건강(); 자기개발(); }

0개의 댓글