//https://stackoverflow.com/a/26569703/1981314
        void HandleRecognizer(UIScreenEdgePanGestureRecognizer recognizer, UINavigationController navigationController)
        {
            var translate = recognizer.TranslationInView(recognizer.View);
            var percent   = translate.X / recognizer.View.Bounds.Width * 2;
            var velocity  = recognizer.VelocityInView(recognizer.View);

            if (percent > 1)
            {
                percent = 1;
            }

            if (recognizer.State == UIGestureRecognizerState.Began)
            {
                interactor = new UIPercentDrivenInteractiveTransition();
                navigationController.PopViewController(true);
            }

            else if (recognizer.State == UIGestureRecognizerState.Changed)
            {
                interactor.UpdateInteractiveTransition(percent);
            }

            else if (recognizer.State == UIGestureRecognizerState.Ended)
            {
                if (percent > 0.5 || velocity.X > 0)
                {
                    interactor.FinishInteractiveTransition();
                }
                else
                {
                    interactor.CancelInteractiveTransition();
                }
                interactor = null;
            }
        }
 public override IUIViewControllerInteractiveTransitioning GetInteractionControllerForAnimationController(UINavigationController navigationController, IUIViewControllerAnimatedTransitioning animationController)
 {
     transition=new SlideLeftRight (reversed);
     return transition;
 }