                 
                 transition.transitionContext.completeTransition(true)
             }
-        }
-        
-        guard let useFinishingSpringOption = self.useFinishingSpringOption else {
-            return
         }
         
         if useFinishingSpringOption {

    private var panRecognizer: UIPanGestureRecognizer!
    
    required init(presentAction: @escaping Action, dismissAction: @escaping Action, transitionOptionsBuilder: TransitionOptionsBuilder? = nil) {
        super.init()
  
        self.presentAction = presentAction
        self.dismissAction = dismissAction
        

    var present: Bool = false
    var interactionInProgress: Bool = false

    private let transitionDurationPortrait: TimeInterval
    private let transitionDurationLandscape: TimeInterval
    private var transitionDuration: TimeInterval {
        return UIDevice.current.orientation.isPortrait ? transitionDurationPortrait : transitionDurationLandscape
    }

    private let visibleContentWidthPortrait: CGFloat
    private let visibleContentWidthLandscape: CGFloat
    private var visibleContentWidth: CGFloat {
        return UIDevice.current.orientation.isPortrait ? visibleContentWidthPortrait : visibleContentWidthLandscape
    }

    private let contentScalePortrait: CGFloat
    private let contentScaleLandscape: CGFloat
    private var scaleDiff: CGFloat {
        return 1 - (UIDevice.current.orientation.isPortrait ? contentScalePortrait : contentScaleLandscape)
    }

    private let useFinishingSpringOption: Bool
    private let useCancellingSpringOption: Bool
    private let finishingSpringOption: SpringOption
    private let cancelingSpringOption: SpringOption
    private let animationOptions: UIViewAnimationOptions
    
    private let presentAction: Action
    private let dismissAction: Action
    
    private var transitionShouldStarted = false
    private var transitionStarted = false
