If the application contains multiple views and they need to be switched, it can be done in various ways. One of the common ways is to delete the current view, create a new view, and add the new one to the control stack. Here, CMyAppUi has a custom method to change a view. Often a more generic approach should be favored, but for simplicity the basic idea could be as follows:
void CMyAppUi::ChangeToView2L() { CCoeControl* newView = CMyAppView2::NewL(ClientRect()); if(iCurrentView) { RemoveFromStack(iCurrentView); delete iCurrentView; } iCurrentView = newView; AddToStackL(iCurrentView); }
Although this architecture provides the most flexible way of manipulating different views, the view architecture should be considered. Among other things, it provides a ready framework for doing the essentials in view switching.