UINavigationController에 붙어있는 ViewController이지만백제스쳐가 동작하지 않는 경우가 왕왕있다.
해당 문제는 제스쳐 이벤트 끼리의 충돌문제인것으로 보인다이때 네비게이션 제스쳐를 하나의 UINavigationController 내부의 viewControllers개수가 하나보다 많을때만 동작하도록 지정해주는 걸 달아주면 이상하게도 동작을 잘한다.
해당 소스는 상단 스택오버플로우의 답에 달린 코드이다.
class NavigationController: UINavigationController, UIGestureRecognizerDelegate {
/// Custom back buttons disable the interactive pop animation
/// To enable it back we set the recognizer to `self`
override func viewDidLoad() {
super.viewDidLoad()
interactivePopGestureRecognizer?.delegate = self
}
func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
return viewControllers.count > 1
}
}
'iOS > swift' 카테고리의 다른 글
bringSubviewToFront(_:) (0) | 2022.06.29 |
---|---|
error, building for iOS Simulator, but linking in object file built for iOS, ~ for architecture arm64 (1) | 2022.06.29 |
Xcode를 버전별로 관리하자 (0) | 2022.05.19 |
private(set) 변수를 외부에서 쓰지못하게 막자 (0) | 2022.05.12 |
배열을 그룹별로 분리하기 Dictionary(grouping:, by:) (0) | 2022.04.22 |