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, S60 view architecture should be considered. Among other things, it provides a ready framework for doing the essentials in view switching.