protected override void PresentOnMainThread <TInput, TOutput>(ViewModel <TInput, TOutput> viewModel, IView sourceView) { UIViewController viewController = ViewControllerLocator.GetNavigationViewController(viewModel); viewController.ModalPresentationStyle = UIModalPresentationStyle.PageSheet; UIViewController topmostViewController = FindPresentedViewController(); topmostViewController.PresentViewController(viewController, true, null); }
protected override void PresentOnMainThread <TInput, TOutput>(ViewModel <TInput, TOutput> viewModel, IView sourceView) { UIViewController viewController = ViewControllerLocator.GetNavigationViewController(viewModel); viewController.ModalPresentationStyle = UIModalPresentationStyle.PageSheet; viewController.PresentationController.Delegate = new PresentationControllerDelegate( () => viewModel.CloseWithDefaultResult()); UIViewController topmostViewController = FindPresentedViewController(); topmostViewController.PresentViewController(viewController, true, null); }
protected override void PresentOnMainThread <TInput, TOutput>(ViewModel <TInput, TOutput> viewModel, IView view) { var shouldWrapInNavigationController = !(viewModel is MainTabBarViewModel); var rootViewController = shouldWrapInNavigationController ? ViewControllerLocator.GetNavigationViewController(viewModel) : ViewControllerLocator.GetViewController(viewModel); var oldRootViewController = Window.RootViewController; UIView.Transition( Window, Animation.Timings.EnterTiming, UIViewAnimationOptions.TransitionCrossDissolve, () => Window.RootViewController = rootViewController, () => detachOldRootViewController(oldRootViewController) ); }
protected override void PresentOnMainThread <TInput, TOutput>(ViewModel <TInput, TOutput> viewModel, IView view) { var rootViewController = !viewModelsNotWrappedInNavigationController.Contains(viewModel.GetType()) ? ViewControllerLocator.GetNavigationViewController(viewModel) : ViewControllerLocator.GetViewController(viewModel); var oldRootViewController = Window.RootViewController; Window.RootViewController = rootViewController; UIView.Transition( Window, Animation.Timings.EnterTiming, UIViewAnimationOptions.TransitionCrossDissolve, () => { }, () => detachOldRootViewController(oldRootViewController) ); }