protected override void ShowRootViewController(UIViewController viewController, MvxRootPresentationAttribute attribute, MvxViewModelRequest request) { // check if viewController is a MvxSidebarPanelController if (viewController is MvxSidebarViewController sidebarView) { MasterNavigationController = new MvxNavigationController(); SideBarViewController = sidebarView; SideBarViewController.SetNavigationController(MasterNavigationController); SetWindowRootViewController(viewController); Mvx.RegisterSingleton <IMvxSidebarViewController>(SideBarViewController); CleanupModalViewControllers(); CloseTabBarViewController(); CloseSplitViewController(); CloseMasterNavigationController(); return; } else { SideBarViewController = null; MasterNavigationController = null; base.ShowRootViewController(viewController, attribute, request); } }
public static void ShowMenuButton(this UIViewController viewController, MvxSidebarViewController sidebarPanelController) { UIBarButtonItem barButtonItem; // Make there are currently no left or right buttons viewController.NavigationItem.SetLeftBarButtonItem(null, true); viewController.NavigationItem.SetRightBarButtonItem(null, true); if (sidebarPanelController.HasLeftMenu) { var mvxSidebarMenu = sidebarPanelController.LeftSidebarController.MenuAreaController as IMvxSidebarMenu; sidebarPanelController.LeftSidebarController.MenuLocation = MenuLocations.Left; barButtonItem = CreateBarButtonItem(sidebarPanelController.LeftSidebarController, mvxSidebarMenu); viewController.NavigationItem.SetLeftBarButtonItem(barButtonItem, true); } if (sidebarPanelController.HasRightMenu) { var mvxSidebarMenu = sidebarPanelController.RightSidebarController.MenuAreaController as IMvxSidebarMenu; sidebarPanelController.RightSidebarController.MenuLocation = MenuLocations.Right; barButtonItem = CreateBarButtonItem(sidebarPanelController.RightSidebarController, mvxSidebarMenu); viewController.NavigationItem.SetRightBarButtonItem(barButtonItem, true); } }
public static void ShowMenuButton(this UIViewController viewController, MvxSidebarViewController sidebarPanelController, bool showLeft = true, bool showRight = true) { UIBarButtonItem barButtonItem; if (sidebarPanelController.HasLeftMenu && showLeft) { var mvxSidebarMenu = sidebarPanelController.LeftSidebarController.MenuAreaController as IMvxSidebarMenu; sidebarPanelController.LeftSidebarController.MenuLocation = MenuLocations.Left; barButtonItem = CreateBarButtonItem(sidebarPanelController.LeftSidebarController, mvxSidebarMenu); viewController.NavigationItem.SetLeftBarButtonItem(barButtonItem, true); } if (sidebarPanelController.HasRightMenu && showRight) { var mvxSidebarMenu = sidebarPanelController.RightSidebarController.MenuAreaController as IMvxSidebarMenu; sidebarPanelController.RightSidebarController.MenuLocation = MenuLocations.Right; barButtonItem = CreateBarButtonItem(sidebarPanelController.RightSidebarController, mvxSidebarMenu); viewController.NavigationItem.SetRightBarButtonItem(barButtonItem, true); } }
protected override async Task <bool> ShowRootViewController(UIViewController viewController, MvxRootPresentationAttribute attribute, MvxViewModelRequest request) { // check if viewController is a MvxSidebarPanelController if (viewController is MvxSidebarViewController sidebarView) { MasterNavigationController = new MvxNavigationController(); SideBarViewController = sidebarView; SideBarViewController.SetNavigationController(MasterNavigationController); SetWindowRootViewController(viewController, attribute); Mvx.IoCProvider.RegisterSingleton <IMvxSidebarViewController>(SideBarViewController); if (!await CloseModalViewControllers()) { return(false); } if (!await CloseTabBarViewController()) { return(false); } if (!await CloseSplitViewController()) { return(false); } CloseMasterNavigationController(); return(true); } else { SideBarViewController = null; MasterNavigationController = null; return(await base.ShowRootViewController(viewController, attribute, request)); } }