public static void PresentModelView(UIView view, UIModalTransitionStyle transistionStyle) { var controller = CreateDialogViewController(view); controller.ModalTransitionStyle = transistionStyle; var navigation = new UINavigationController(); navigation.ViewControllers = new UIViewController[] { controller }; NavigationController.PresentModalViewController(navigation, true); }
public static void PresentModelView(object view, UIModalTransitionStyle transistionStyle) { var dvc = CreateDialogViewController(view, true, false); dvc.ModalTransitionStyle = transistionStyle; var navController = new NavigationController() { ViewControllers = new UIViewController[] { dvc } }; NavigationController.PresentModalViewController(navController, true); }
public static Task ShowModal( UIViewController parentViewController, UIView view, UIModalPresentationStyle presentationStyle = UIModalPresentationStyle.FormSheet, UIModalTransitionStyle transitionStyle = UIModalTransitionStyle.CoverVertical, Action completionHandler = null, bool dismissOnTapOutside = true, bool disposeOnFinish = false ) { return(ShowModal( parentViewController, new UIViewController { View = view }, presentationStyle, transitionStyle, completionHandler, dismissOnTapOutside, disposeOnFinish )); }
public static Task ShowModal <TViewController>( UIViewController parentViewController, TViewController viewController, Action <TViewController, Action> dismissSubscriber, UIModalPresentationStyle presentationStyle = UIModalPresentationStyle.FormSheet, UIModalTransitionStyle transitionStyle = UIModalTransitionStyle.CoverVertical, Action completionHandler = null, bool dismissOnTapOutside = true, bool disposeOnFinish = false ) where TViewController : UIViewController { return(ShowModal <TViewController, object>( parentViewController, viewController, dismissSubscriber, presentationStyle, transitionStyle, completionHandler, (vc) => null, dismissOnTapOutside, disposeOnFinish )); }
public static Task ShowModal( UIViewController parentViewController, UIViewController viewController, UIModalPresentationStyle presentationStyle = UIModalPresentationStyle.FormSheet, UIModalTransitionStyle transitionStyle = UIModalTransitionStyle.CoverVertical, Action completionHandler = null, bool dismissOnTapOutside = true, bool disposeOnFinish = false ) { return(ShowModal <ModalFrameController>( parentViewController, new ModalFrameController(viewController), (mfc, dismissAction) => { mfc.DoneAction = dismissAction; }, presentationStyle, transitionStyle, completionHandler, dismissOnTapOutside, disposeOnFinish )); }
/// <summary> /// Creates a new instance of <see cref="UIViewControllerSectionsTransitionInfo"/>. /// </summary> /// <param name="allowDismissFromGesture">See <see cref="AllowDismissFromGesture"/>.</param> /// <param name="modalPresentationStyle">See <see cref="ModalPresentationStyle"/>.</param> /// <param name="modalTransitionStyle">See <see cref="ModalTransitionStyle"/>.</param> public UIViewControllerSectionsTransitionInfo(bool allowDismissFromGesture = true, UIModalPresentationStyle modalPresentationStyle = UIModalPresentationStyle.PageSheet, UIModalTransitionStyle modalTransitionStyle = UIModalTransitionStyle.CoverVertical) { AllowDismissFromGesture = allowDismissFromGesture; ModalPresentationStyle = modalPresentationStyle; ModalTransitionStyle = modalTransitionStyle; }
public static void PresentModelView(UIView view, UIModalTransitionStyle transistionStyle) { _PreviousController = CurrentViewController; _PreviousDialogViewController = CurrentDialogViewController; CurrentDialogViewController = CreateDialogViewController(view, true); _NavigationController = new UINavigationController(); _NavigationController.ViewControllers = new UIViewController[] { CurrentDialogViewController }; CurrentViewController = _NavigationController; CurrentViewController.ModalTransitionStyle = transistionStyle; NavigationController.PresentModalViewController(_NavigationController, true); }
public static async Task <TResult> ShowModal <TViewController, TResult>( UIViewController parentViewController, TViewController viewController, Action <TViewController, Action> dismissSubscriber = null, UIModalPresentationStyle presentationStyle = UIModalPresentationStyle.FormSheet, UIModalTransitionStyle transitionStyle = UIModalTransitionStyle.CoverVertical, Action completionHandler = null, Func <TViewController, TResult> resultGetter = null, bool dismissOnTapOutside = true, bool disposeOnFinish = false ) where TViewController : UIViewController { try { if (completionHandler == null) { completionHandler = Tools.Lambda.NoOp; } if (dismissOnTapOutside && presentationStyle.IsIn(UIModalPresentationStyle.FullScreen, UIModalPresentationStyle.OverFullScreen)) { dismissOnTapOutside = false; } if (dismissSubscriber == null && dismissOnTapOutside == false) { throw new ArgumentException("dismissSubscriber is null and dismissOnTapOutside is effectively false, this will result in an unclosable modal screen"); } var signal = new ManualResetEventSlim(); viewController.ModalPresentationStyle = presentationStyle; viewController.ModalTransitionStyle = transitionStyle; Action dismissModalDialogAction = signal.Set; dismissSubscriber(viewController, dismissModalDialogAction); var currentPresentedController = parentViewController.FindPresentedViewController(); if (currentPresentedController != null) { parentViewController = currentPresentedController; } viewController.ProvidesPresentationContextTransitionStyle = true; viewController.DefinesPresentationContext = true; await parentViewController.PresentViewControllerAsync(viewController, true); completionHandler(); var window = parentViewController.View.Window; UITapGestureRecognizerEx tapOutsideGesture = null; if (dismissOnTapOutside) { tapOutsideGesture = new UITapGestureRecognizerEx(async(x) => { if (x.State == UIGestureRecognizerState.Ended) { var location = x.LocationInView(null);//Passing nil gives us coordinates in the window if (!viewController.View.PointInside(viewController.View.ConvertPointFromView(location, window), null)) { //Convert tap location into the local view's coordinate system. If outside, dismiss the view. signal.Set(); } } }); tapOutsideGesture.NumberOfTapsRequired = 1; tapOutsideGesture.CancelsTouchesInView = false; window.AddGestureRecognizer(tapOutsideGesture); } await Task.Run(() => signal.Wait()); if (dismissOnTapOutside) { window.RemoveGestureRecognizer(tapOutsideGesture); } if (!viewController.IsBeingDismissed && parentViewController.ModalViewController == viewController) { await viewController.DismissViewControllerAsync(true); } return(resultGetter == null ? default(TResult) : resultGetter(viewController)); } finally { if (disposeOnFinish) { viewController.Dispose(); } } }
public static void PresentModelView(UIView view, UIModalTransitionStyle transistionStyle) { var controller = CreateDialogViewController(view); controller.ModalTransitionStyle = transistionStyle; var navigation = new UINavigationController(); navigation.ViewControllers = new UIViewController[] { controller }; NavigationController.PresentModalViewController(navigation, true); }
public static void PresentModelView(object view, UIModalTransitionStyle transistionStyle) { var dvc = CreateDialogViewController(view, true, false); dvc.ModalTransitionStyle = transistionStyle; var navController = new NavigationController() { ViewControllers = new UIViewController[] { dvc } }; NavigationController.PresentModalViewController(navController, true); }