     private weak var transitionContext: UIViewControllerContextTransitioning?
     private weak var source: ZoomTransitionSourceDelegate?
     private weak var destination: ZoomTransitionDestinationDelegate?
+    private weak var screenEdgePanGestureRecognizer: UIScreenEdgePanGestureRecognizer?
     private var forward = false
     private var interactive = false
     private var interactiveProgress: NSTimeInterval = 0.0

        if let screenEdgePanGestureRecognizer = navigationController.interactivePopGestureRecognizer as? UIScreenEdgePanGestureRecognizer {
            screenEdgePanGestureRecognizer.delegate = self
            screenEdgePanGestureRecognizer.addTarget(self, action: #selector(ZoomTransitioning.handlePanGestureRecognizer(_:)))
        }

        return self

    public func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
        interactive = true
        return true
    }

    public func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailByGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
        return screenEdgePanGestureRecognizer === gestureRecognizer
    }
}

