protected virtual bool ShowPanel(MvxSidebarPresentationAttribute attribute, UIViewController viewController) { var navigationController = SideBarViewController.NavigationController; if (navigationController == null) { return(false); } switch (attribute.Panel) { case MvxPanelEnum.Left: case MvxPanelEnum.Right: break; case MvxPanelEnum.Center: default: navigationController.PushViewController(viewController, attribute.Animated); break; case MvxPanelEnum.CenterWithLeft: navigationController.PushViewController(viewController, attribute.Animated); viewController.ShowMenuButton(SideBarViewController, showLeft: true, showRight: false); break; case MvxPanelEnum.CenterWithRight: navigationController.PushViewController(viewController, attribute.Animated); viewController.ShowMenuButton(SideBarViewController, showLeft: false, showRight: true); break; } return(true); }
protected virtual bool ShowPanelAndResetToRoot(MvxSidebarPresentationAttribute attribute, UIViewController viewController) { var navigationController = (SideBarViewController as MvxSidebarViewController).NavigationController; if (navigationController == null) { return(false); } navigationController.ViewControllers = new[] { viewController }; switch (attribute.Panel) { case MvxPanelEnum.Left: case MvxPanelEnum.Right: break; case MvxPanelEnum.Center: default: viewController.ShowMenuButton(SideBarViewController); break; case MvxPanelEnum.CenterWithLeft: viewController.ShowMenuButton(SideBarViewController, showLeft: true, showRight: false); break; case MvxPanelEnum.CenterWithRight: viewController.ShowMenuButton(SideBarViewController, showLeft: false, showRight: true); break; } return(true); }
protected virtual void ShowSidebarViewController( UIViewController viewController, MvxSidebarPresentationAttribute attribute, MvxViewModelRequest request) { if (SideBarViewController == null) { ShowRootViewController(new MvxSidebarViewController(), null, request); } switch (attribute.HintType) { case MvxPanelHintType.PopToRoot: ShowPanelAndPopToRoot(attribute, viewController); break; case MvxPanelHintType.ResetRoot: ShowPanelAndResetToRoot(attribute, viewController); break; case MvxPanelHintType.PushPanel: default: ShowPanel(attribute, viewController); break; } if (!attribute.ShowPanel) { var menu = Mvx.Resolve <IMvxSidebarViewController>(); menu?.CloseMenu(); } }
protected virtual bool CloseSidebarViewController(IMvxViewModel viewModel, MvxSidebarPresentationAttribute attribute) { if (SideBarViewController != null && SideBarViewController.CloseChildViewModel(viewModel)) { return(true); } return(false); }
protected virtual async Task <bool> ShowSidebarViewController( UIViewController viewController, MvxSidebarPresentationAttribute attribute, MvxViewModelRequest request) { if (!await CloseModalViewControllers()) { return(false); } if (SideBarViewController == null) { if (!await ShowRootViewController(new MvxSidebarViewController(), null, request)) { return(false); } } switch (attribute.HintType) { case MvxPanelHintType.PopToRoot: if (!ShowPanelAndPopToRoot(attribute, viewController)) { return(false); } break; case MvxPanelHintType.ResetRoot: if (!ShowPanelAndResetToRoot(attribute, viewController)) { return(false); } break; case MvxPanelHintType.PushPanel: default: if (!ShowPanel(attribute, viewController)) { return(false); } break; } if (!attribute.ShowPanel) { var menu = Mvx.IoCProvider.Resolve <IMvxSidebarViewController>(); menu?.CloseMenu(); } return(true); }
protected virtual bool ShowPanelAndPopToRoot(MvxSidebarPresentationAttribute attribute, UIViewController viewController) { var navigationController = (SideBarViewController as MvxSidebarViewController).NavigationController; if (navigationController == null) { return(false); } navigationController.PopToRootViewController(false); navigationController.PushViewController(viewController, false); return(true); }