Exemplo n.º 1
0
        protected virtual async Task <bool> ShowMasterDetailSplitViewController(
            UIViewController viewController,
            MvxMasterDetailPresentationAttribute attribute,
            MvxViewModelRequest request)
        {
            if (SplitViewController != null && attribute.Position == MasterDetailPosition.Master)
            {
                return(await ShowMasterView(viewController, attribute.WrapInNavigationController));
            }
            else if (SplitViewController != null && attribute.Position == MasterDetailPosition.Detail)
            {
                return(await ShowDetailView(viewController, attribute.WrapInNavigationController));
            }
            else if (viewController is MvxSplitViewController && attribute.Position == MasterDetailPosition.Root)
            {
                SplitViewController = (MvxSplitViewController)viewController;

                // set root
                await SetupSplitViewWindowRootNavigation(viewController, attribute);

                await CloseModalViewControllers();
                await CloseTabBarViewController();
            }
            else
            {
                throw new MvxException("Trying to show a master page without a SplitViewController, this is not possible!");
            }
            return(true);
        }
Exemplo n.º 2
0
        protected void CloseSplitViewController()
        {
            if (SplitViewController == null)
            {
                return;
            }

            if (SplitViewController is UISplitViewController splitController &&
                splitController.ViewControllers != null)
            {
                foreach (var item in splitController.ViewControllers)
                {
                    item.DidMoveToParentViewController(null);
                }
            }
            SplitViewController = null;
        }
Exemplo n.º 3
0
        protected Task <bool> CloseSplitViewController()
        {
            if (SplitViewController == null)
            {
                return(Task.FromResult(true));
            }

            if (SplitViewController is UISplitViewController splitController &&
                splitController.ViewControllers != null)
            {
                foreach (var item in splitController.ViewControllers)
                {
                    item.DidMoveToParentViewController(null);
                }
            }
            SplitViewController = null;
            return(Task.FromResult(true));
        }