public override void Show(MvxViewModelRequest request) { var uiView = this.CreateViewControllerFor(request) as UIViewController; if (uiView == null) throw new InvalidOperationException("Asking to show a view which is not a UIViewController!"); if (request.PresentationValues != null && request.PresentationValues.ContainsKey(PresentationValues.SlideoutRootPresentation)) { var openButton = new UIBarButtonItem { Image = Images.Buttons.ThreeLines }; var mainNavigationController = new MainNavigationController(uiView, SlideoutNavigationController, openButton); _generalNavigationController = mainNavigationController; SlideoutNavigationController.SetMainViewController(mainNavigationController, true); } 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, 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 uiView = this.CreateViewControllerFor(request) as UIViewController; if (uiView == null) throw new InvalidOperationException("Asking to show a view which is not a UIViewController!"); if (uiView is IMvxModalIosView) { if (_currentModal != null) throw new InvalidOperationException("Cannot have multiple modals"); _currentModal = (IMvxModalIosView)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 = ((IMvxModalIosView)uiView).ViewModel; Mvx.Resolve<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) { Transition(uiView); } else if (uiView is LoginView && _slideoutController == null) { var nav = new UINavigationController(uiView); _window.RootViewController.PresentViewController(nav, true, null); } else if (uiView is MenuBaseViewController) { _slideoutController = new SlideoutNavigationController(); _slideoutController.MenuViewController = new MenuNavigationController(uiView, _slideoutController); uiView.NavigationController.NavigationBar.SetBackgroundImage(null, UIBarMetrics.Default); 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); } } }