public override void Show(MvxViewModelRequest request) { var viewCreator = Mvx.Resolve<IMvxTouchViewCreator>(); var view = viewCreator.CreateView(request); var uiView = view as UIViewController; if (uiView == null) throw new InvalidOperationException("Asking to show a view which is not a UIViewController!"); if (uiView is IMvxModalTouchView) { _currentModal = (IMvxModalTouchView)uiView; var modalNavigationController = new UINavigationController(uiView); modalNavigationController.NavigationBar.Translucent = false; modalNavigationController.Toolbar.Translucent = false; uiView.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(Theme.CurrentTheme.CancelButton, UIBarButtonItemStyle.Plain, (s, e) => { var vm = ((IMvxModalTouchView)uiView).ViewModel; Mvx.Resolve<Cirrious.MvvmCross.Plugins.Messenger.IMvxMessenger>().Publish(new CodeFramework.Core.Messages.CancelationMessage(vm)); modalNavigationController.DismissViewController(true, null); _currentModal = null; }); PresentModalViewController(modalNavigationController, true); } else if (uiView is StartupView) { _window.RootViewController = uiView; } else if (uiView is AccountsView) { _slideoutController = null; _generalNavigationController = new UINavigationController(uiView); _generalNavigationController.NavigationBar.Translucent = false; _generalNavigationController.Toolbar.Translucent = false; Transition(_generalNavigationController, UIViewAnimationTransition.FlipFromRight); } else if (uiView is MenuBaseViewController) { _slideoutController = new SimpleSlideoutNavigationController(); _slideoutController.MenuViewController = new MenuNavigationController(uiView, _slideoutController); uiView.NavigationController.NavigationBar.Translucent = false; uiView.NavigationController.Toolbar.Translucent = false; uiView.NavigationController.NavigationBar.BarTintColor = UIColor.FromRGB(50, 50, 50); Transition(_slideoutController, UIViewAnimationTransition.FlipFromLeft); } else { if (request.PresentationValues != null && request.PresentationValues.ContainsKey(PresentationValues.SlideoutRootPresentation)) { var mainNavigationController = new MainNavigationController(uiView, _slideoutController, new UIBarButtonItem(Theme.CurrentTheme.ThreeLinesButton, UIBarButtonItemStyle.Plain, (s, e) => _slideoutController.Open(true))); _generalNavigationController = mainNavigationController; _slideoutController.SetMainViewController(mainNavigationController, true); //_generalNavigationController.NavigationBar.BarTintColor = Theme.CurrentTheme.ApplicationNavigationBarTint; _generalNavigationController.NavigationBar.Translucent = false; _generalNavigationController.Toolbar.Translucent = false; } else { _generalNavigationController.PushViewController(uiView, true); } } }
public override void Show(MvxViewModelRequest request) { var viewCreator = Mvx.Resolve <IMvxTouchViewCreator>(); var view = viewCreator.CreateView(request); var uiView = view as UIViewController; if (uiView == null) { throw new InvalidOperationException("Asking to show a view which is not a UIViewController!"); } if (uiView is IMvxModalTouchView) { _currentModal = (IMvxModalTouchView)uiView; var modalNavigationController = new UINavigationController(uiView); modalNavigationController.NavigationBar.Translucent = false; modalNavigationController.Toolbar.Translucent = false; uiView.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(Theme.CurrentTheme.CancelButton, UIBarButtonItemStyle.Plain, (s, e) => { var vm = ((IMvxModalTouchView)uiView).ViewModel; Mvx.Resolve <Cirrious.MvvmCross.Plugins.Messenger.IMvxMessenger>().Publish(new CodeFramework.Core.Messages.CancelationMessage(vm)); modalNavigationController.DismissViewController(true, null); _currentModal = null; }); PresentModalViewController(modalNavigationController, true); } else if (uiView is StartupView) { _window.RootViewController = uiView; } else if (uiView is AccountsView) { _slideoutController = null; _generalNavigationController = new UINavigationController(uiView); _generalNavigationController.NavigationBar.Translucent = false; _generalNavigationController.Toolbar.Translucent = false; Transition(_generalNavigationController); } else if (uiView is MenuBaseViewController) { _slideoutController = new SimpleSlideoutNavigationController(); _slideoutController.MenuViewController = new MenuNavigationController(uiView, _slideoutController); uiView.NavigationController.NavigationBar.Translucent = false; uiView.NavigationController.Toolbar.Translucent = false; uiView.NavigationController.NavigationBar.BarTintColor = UIColor.FromRGB(50, 50, 50); Transition(_slideoutController); } else { if (request.PresentationValues != null && request.PresentationValues.ContainsKey(PresentationValues.SlideoutRootPresentation)) { var mainNavigationController = new MainNavigationController(uiView, _slideoutController, new UIBarButtonItem(Theme.CurrentTheme.ThreeLinesButton, UIBarButtonItemStyle.Plain, (s, e) => _slideoutController.Open(true))); _generalNavigationController = mainNavigationController; _slideoutController.SetMainViewController(mainNavigationController, true); //_generalNavigationController.NavigationBar.BarTintColor = Theme.CurrentTheme.ApplicationNavigationBarTint; _generalNavigationController.NavigationBar.Translucent = false; _generalNavigationController.Toolbar.Translucent = false; } else { _generalNavigationController.PushViewController(uiView, true); } } }