在处理多视图切换的时候遇到一个问题,程序启动的时候应该显示默认的视图,但奇怪的虽然菜单显示是对的,但主视图显示的内容却不是那个视图的内容,只有多次切换后才可以正常切换,后来在各视图的ViewActivatedL里面加上Window().SetOrdinalPosition(0)后,程序就正常了,真是搞不明白为什么会这样.
程序代码:
void CChannelView::ViewActivatedL(const TVwsViewId& aPrevViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage)
{
CEikMenuBar* menuBar = iEikonEnv->AppUiFactory()->MenuBar();
menuBar->ChangeMenuBarL(0, R_CHANNEL_MENUBAR, EFalse);
Window().SetOrdinalPosition(0);//加的就是这一句
MakeVisible(ETrue);
}