       
       completion?(isFinishing)
       
-      if isTriggeredByUserInteraction {
+      if isTriggeredByUserInteraction && isFinishing {
         self.delegate?.tabsController?(tabsController: self, didSelect: viewController)
+      } else {
+        self.delegate?.tabsController?(tabsController: self, didCancelSelecting: viewController)
       }
     }
   }

      } else {
        tabBar.cancelLineTransition()
        MotionTransition.shared.cancel()
      }
      targetIndex = -1
    }

   */
  @objc
  optional func tabsController(tabsController: TabsController, didSelect viewController: UIViewController)
  
  /**
   A delegation method that is executed when the interactive transition to view controller
   will be cancelled.
   - Parameter tabsController: A TabsController.
   - Parameter viewController: A UIViewController.
   */
  @objc
  optional func tabsController(tabsController: TabsController, willCancelSelecting viewController: UIViewController)
  
  /**
   A delegation method that is executed when the interactive transition to view controller
   has been cancelled.
   - Parameter tabsController: A TabsController.
   - Parameter viewController: A UIViewController.
   */
  @objc
  optional func tabsController(tabsController: TabsController, didCancelSelecting viewController: UIViewController)
}

open class TabsController: TransitionController {
