public override void Show(IMvxIosView view) { if (view is IMvxModalIosView) { PresentModalViewController(view as UIViewController, true); return; } var viewController = view as UIViewController; if (viewController == null) { throw new MvxException("Passed in IMvxIosView is not a UIViewController"); } if (RootViewController == null) { InitRootViewController(); } var viewPresentationAttribute = GetViewPresentationAttribute(view); //Create fall back viewPresentationAttribute, when nothing is set if (viewPresentationAttribute == null) { ParentRootViewController.PushViewController(viewController, ParentRootViewController.ViewControllers.Count() > 1); return; } switch (viewPresentationAttribute.HintType) { case MvxPanelHintType.PopToRoot: ChangePresentation(new MvxSidebarPopToRootPresentationHint(viewPresentationAttribute.Panel, RootViewController, viewController)); break; case MvxPanelHintType.ResetRoot: ChangePresentation(new MvxSidebarResetRootPresentationHint(viewPresentationAttribute.Panel, RootViewController, viewController)); break; case MvxPanelHintType.ActivePanel: default: ChangePresentation(new MvxSidebarActivePanelPresentationHint(viewPresentationAttribute.Panel, RootViewController, viewController)); break; } if (!viewPresentationAttribute.ShowPanel) { var menu = Mvx.Resolve <IMvxSideMenu>(); menu?.Close(); } }
public override void Close(IMvxViewModel toClose) { if (ParentRootViewController.ViewControllers.Count() > 1) { ParentRootViewController.PopViewController(true); } else if (RootViewController.NavigationController.ViewControllers.Count() > 1) { RootViewController.NavigationController.PopViewController(true); } else { base.Close(toClose); } }