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

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

        }

        let duration = transitionDuration * (1.0 - interactiveProgress)
        UIView.animateWithDuration(
            duration,
            animations: {
