Generally you use a CustomPresenter for this type of logic - see N=25 in http://mvvmcross.wordpress.com for one example.
Your custom presenter can do things like:
- hiding the top-level navigation bar (like on https://github.com/slodge/NPlus1DaysOfMvvmCross/blob/master/N-25-Tabbed/Tabbed.Touch/Setup.cs#L41) - this can be done at different levels
- delegating
Show
requests to navigation controllers sitting within the tab children: like on https://github.com/slodge/NPlus1DaysOfMvvmCross/blob/master/N-25-Tabbed/Tabbed.Touch/Setup.cs#L58 directly manipulating the
UIViewController[]
array - e.g. something likepublic override void Show(IMvxTouchView view) { base.Show(view); if (view is MainView && MasterNavigationController.ViewControllers.Length > 1) { MasterNavigationController.ViewControllers = new UIViewController[] { MasterNavigationController.ViewControllers.Last() }; } }
For more on custom presenters, see https://github.com/slodge/MvvmCross/wiki/Customising-using-App-and-Setup#custom-presenters and http://slodge.blogspot.co.uk/2013/06/presenter-roundup.html
This article might be especially useful - http://deapsquatter.blogspot.co.uk/2013/06/custom-presenter-for-uitabbarcontroller.html