通常在设计ui框架的时候,会以类似栈的数据结构(非栈)进行存储管理,将打开界面进行入栈操作,将关闭界面进行出栈操作。
同时,在打开某界面的时候,可能将上个界面隐藏,在关闭这个界面的时候,恢复显示上个界面。
大致代码如下:
private void PushPanel(Panel panel, bool hidePrev = true)
{
if (panel == null)
{
return;
}
//隐藏之前界面
if (hidePrev && panelStacks.Coun > 0)
{
panelStacks[panelStacks.Count - 1].HidePanel();
}
//入栈
panelStacks.Add(panel);
}
private void PopPanel(Panel panel, bool showPrev = true)
{
if (panel == null)
{
return;
}
if (panelStacks.Count > 0)
{
//出栈
panelStacks.RemoveAt(panelStack