//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; }