짧은 가장자리 스 와이프 팝업 기능을 비활성화 내가 위의 delegate 메소드를 구현하여 현재의 viewcontrollers 상태를 결정하면이 부분은 훌륭하게 작동합니다. 나는 실제로 fancy effect를 위해 animationController가 필요 없기 때문에 메서드 내부에 아무 것도 반환하지 않습니다. 그러나이 방법을 구현하면 가장자리 스 와이프 팝 기능/제스처가 작동하지 않습니다. animationcontrollers 또는 interactivecontroller 구현과 같은 다양한 접근 방식을 사용하여 기본 동작을 얻으려고했는데 기본 애니메이션/대화 형 컨트롤러를 얻으려고했으나 작동하지 않았습니다. 제스처 인식기를 전체보기에 적용 할 수 있지만 이것은 예상되는 동작이 아닙니다.구현 UINavigationControllerDelegates animationControllerFor 방법은
누구나 비슷한 문제가 있었는지이 문제에 대한 해결책이 있습니까?
self.interactivePopGestureRecognizer.delegate = self
이 기능을 다시 활성화 할 것이다 : 당신의 init
방법에서
class MyNavigationController: UINavigationController {
override init(navigationBarClass: AnyClass?, toolbarClass: AnyClass?) {
super.init(navigationBarClass: navigationBarClass, toolbarClass: toolbarClass)
delegate = self
}
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
extension MyNavigationController: UINavigationControllerDelegate {
func navigationController(_ navigationController: UINavigationController, animationControllerFor operation: UINavigationControllerOperation, from fromVC: UIViewController, to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
//removing or commenting out this method enables the edge-swipe-back feature/gesture
return nil
}
}