반응형
LinkedIn 개발자로 성장하면서 남긴 발자취들을 확인하실 수 있습니다.
Github WWDC Student Challenge 및 Cherish, Tiramisul 등 개발한 앱들의 코드를 확인하실 수 있습니다.
개인 앱 : Cherish 내 마음을 들여다보는 시간, 체리시는 디자이너와 PM과 함께 진행 중인 1인 개발 프로젝트입니다.
10년 후, 20년 후 나는 어떤 스토리 텔러가 되어 있을지 궁금하다. 내가 만약에 아직 조금 더 탐구하고 싶은 게 있고, 궁금한 게 있다면, 그게 설사 지금 당장의 내 인생에 도움이 안 되는 것 같더라도 경험해보자. 그 경험들을 온전히 즐기며 내 것으로 만들고, 내 일에 녹여내고... 그러다보면 그 점들이 모여 나란 사람을 그려내는 선이 될 테니까.

Recent Posts
Recent Comments
Total
관리 메뉴

꿈꾸는리버리

Navigation가 숨김 처리된 상태에서 제스처로 화면 뒤로가기 본문

카테고리 없음

Navigation가 숨김 처리된 상태에서 제스처로 화면 뒤로가기

rriver2 2025. 3. 19. 22:32
반응형

🔧 문제 상황

NavigationView에서 Navbar를 커스텀하기 위해서 back 버튼을 없앤 경우, 스와이프 동작이 하지 않음

좌) 기본, 우) 커스텀

.navigationBarBackButtonHidden(true)

💬 고민 Point

1. NavigationView에서 바를 가리지 않으면 해당 문제는 발생하지 않는다.

2. 강제로 true로 바뀌는가 싶어 아래의 코드를 추가해봤는데도, 문제가 해결되지 않았음

.interactiveDismissDisabled(false)   // 스와이프 기능 유지

 

 

interactiveDismissDisabled(_:) | Apple Developer Documentation

Conditionally prevents interactive dismissal of presentations like popovers, sheets, and inspectors.

developer.apple.com

🌟 문제 해결

스택 오버 플로우에서 같은 문제를 해결한 코드를 보았고 해결 완료!

 

Hide navigation bar without losing swipe back gesture in SwiftUI

In SwiftUI, whenever the navigation bar is hidden, the swipe to go back gesture is disabled as well. Is there any way to hide the navigation bar while preserving the swipe back gesture in SwiftUI? ...

stackoverflow.com

// 스와이프시 뷰 닫히게
extension UINavigationController: UIGestureRecognizerDelegate {
    override open func viewDidLoad() {
        super.viewDidLoad()
        interactivePopGestureRecognizer?.delegate = self
    }

    public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
        return viewControllers.count > 1
    }
}

 

해당 코드의 설명

- UINavigationController에서 스와이프하여 뒤로 가는 기능을 활성화
- 루트 화면에서는 스와이프가 비활성화됨(뒤로 갈 수 없음)
- 다른 화면에서는 스와이프하면 뒤로 갈 수 있음

 

뷰 전체에 영향을 주는 코드라, 최대한 안쓰는 방법으로 찾아봤는데 찾지를 못했다.,.. ㅠㅠ

반응형
Comments