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); }
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; }
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)); }