Hello Andy,
if the modal state is not desired, I see three possibilities:
Option 1: In your component add a new variable. Configure the data type of the variable to Core::Group which is common for all GUI components. Then when you create new view emember it in the variable. Later when you switch to another view, just use the variable to Remove() the old view and create the new one. For example:
var Menu::Menu_GPS_Map menu = new Menu::Menu_GPS_Map;
GetRoot().Add(menu,0);
// The new variable to store the current view.
CurrentView = menu;
[...]
GetRoot().Remove( CurrentView );
CurrentView = null;
Option 2: Within your GUI component where you show the views, you can enumerate/search for existing views. In this way you can find the view shown actually and remove it before you show another one. See the section Enumerate and search views existing within the component.
Option 3: Manage the views as dialogs. For this purpose you use the method SwitchToDialog(). The underlying functionality remembers which dialog is actually visible so switchting to another dialog will hide the old one. Please see the section Managing Dialogs.
Concerning the options 1 and 2 I would also recommend to study the section Communication between components-
Does it help you further?
Best regards
Paul Banach