 extension ARNTransitionAnimator: UIViewControllerInteractiveTransitioning {
     
     public override func startInteractiveTransition(transitionContext: UIViewControllerContextTransitioning) {
-        let fromVC = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey)!
-        let toVC = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey)!
         let containerView = transitionContext.containerView()
+        
+        // FIXME : UINavigationController not called animator UIViewControllerTransitioningDelegate
+        switch (self.interactiveType) {
+        case .Push, .Present:
+            self.isPresenting = true
+        case .Pop, .Dismiss:
+            self.isPresenting = false
+        case .None:
+            break
+        }
         
         self.transitionContext = transitionContext
         self.fireBeforeHandler(containerView, transitionContext: transitionContext)

                animationRatio = (location.x - self.panLocationStart) / CGRectGetWidth(bounds)
            }
            
            if animationRatio < 0 {
                animationRatio = 0
            }
            
            if let _contentScrollView = self.contentScrollView {
                if self.isTransitioning == false && _contentScrollView.contentOffset.y <= 0 {
                    self.startGestureTransition()

    private weak var fromVC : UIViewController!
    private weak var toVC : UIViewController!
    
    private(set) var operationType : ARNTransitionAnimatorOperation
    private(set) var isPresenting : Bool = true
    private(set)  var isTransitioning : Bool = false
    
    private var gesture : UIPanGestureRecognizer?
    private var transitionContext : UIViewControllerContextTransitioning?
    private var panLocationStart : CGFloat = 0.0
    private var tmpBounces: Bool = true
    
    deinit {
