Exemple #1
0
        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);
            }
        }
Exemple #4
0
        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));
            }
        }