iOS
[iOS] Custom Navigation Controller Pop Gesture Swift
thoonk:
2022. 9. 22. 15:08
반응형
커스텀 네비게이션 컨트롤러를 설정했을 때, Pop Gesture가 작동하지 않는 이슈 해결 방법을 기록합니다.
기본적인 NavigationController를 사용했을 때, Swipe로 현재 뷰컨트롤러를 스택에서 Pop할 수 있습니다.
하지만, 네비게이션 바를 커스텀했을 때, Pop Gesture가 작동하지 않아 해결 방법을 찾게 되었습니다.
익스텐션을 활용하여 viewDidLoad 메서드에서 interactivePopGestureRecognizer의 Delegate를 설정합니다.
gestureRecognizerShouldBegin 메서드에서 스택에 2개 이상의 뷰컨트롤러, 즉 rootViewController를 제외한 뷰컨트롤러들이 있을 때 gestureRecognizer가 인식을 시작합니다.
import UIKit
extension UINavigationController: UIGestureRecognizerDelegate {
open override func viewDidLoad() {
super.viewDidLoad()
interactivePopGestureRecognizer?.delegate = self
}
public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
return viewControllers.count > 1
}
}
부족한 점 피드백해주시면 감사합니다👍
Ref.
반응형