     
     // interactive gesture
     
-    public weak var gestureTargetView : UIView?
+    public weak var gestureTargetView : UIView? {
+        willSet {
+            self.unregisterPanGesture()
+        }
+        didSet {
+            self.registerPanGesture()
+        }
+    }
     public var panCompletionThreshold : CGFloat = 100.0
     public var direction : ARNTransitionAnimatorDirection = .Bottom
     public var contentScrollView : UIScrollView? {

                animationRatio = (location.x - self.panLocationStart) / CGRectGetWidth(bounds)
            }
            
            if self.contentScrollView != nil && animationRatio <= 0 {
                self.startGestureTransition()
                self.contentScrollView!.bounces = false
            } else {
                self.updateInteractiveTransition(animationRatio)
            }

        
        self.gesture = UIPanGestureRecognizer(target: self, action: "handlePan:")
        self.gesture!.delegate = self
        self.gesture!.maximumNumberOfTouches = 1
        
        if let _gestureTargetView = self.gestureTargetView {
            _gestureTargetView.addGestureRecognizer(self.gesture!)
