public override void Show(Cirrious.MvvmCross.Touch.Views.IMvxTouchView view)
        {
            
            // When initializing views for the first time, we will setup 
            if (view is LoginViewController)
            {              
                _loginViewController = (LoginViewController) view;
                base.Show(view);             
            }
              
            else if (view is MainViewController)
            {                
                _mainViewController = (MainViewController) view;
                base.Show(view);
            }
            else
            {
                if (PresentView(view) == false)
                {
                    // No views can handle presenting this view...just push it on the navigation stack as last resort.
                    base.Show(view);
                }
            }
            _viewPresenters.Add(view);

            var viewPresenter = view as IViewPresenter;
            if (viewPresenter != null)
            {
                viewPresenter.ViewPresenterAdded();
            }
        }
        private void CloseViewController(IMvxTouchView viewController)
        {          
            if (viewController != null)
            {              
                _viewPresenters.Remove(viewController);

                bool viewClosed = false;
                var viewPresenter = viewController as IViewPresenter;
                if (viewPresenter != null)
                {                    
                    viewPresenter.ViewPresenterRemoved();
                }
                
                if (_loginViewController != null && _loginViewController == viewController)
                {
                    base.Close(_loginViewController.ViewModel);
                    _loginViewController = null;
                }
                else if (_mainViewController != null && _mainViewController == viewController)
                {
                    base.Close(_mainViewController.ViewModel);
                    _mainViewController = null;
                }
                else if (_presentedViews.Contains(viewController))
                {
                    // This view is already presented - we don't handle the close for this. They should
                    // have removed themselves on ViewPresenterRemoved
                    _presentedViews.Remove(viewController);
                }
                else
                {
                    // Close another view that was not presented, was not login, or not main view controller
                    base.Close(viewController.ViewModel);                    
                }
            }           
        }