using System.Collections.Generic;
namespace QFramework
{
///
/// UI 界面的堆栈
///
public class UIPanelStack
{
private Stack mUIStack = new Stack();
public void Push() where T : UIPanel
{
Push(UIKit.GetPanel());
}
public void Push(IPanel view)
{
if (view != null)
{
mUIStack.Push(view.Info);
view.Close();
var panelSearchKeys = PanelSearchKeys.Allocate();
panelSearchKeys.GameObjName = view.Transform.name;
UIManager.Instance.RemoveUI(panelSearchKeys);
panelSearchKeys.Recycle2Cache();
}
}
public void Pop()
{
var previousPanelInfo = mUIStack.Pop();
var panelSearchKeys = PanelSearchKeys.Allocate();
panelSearchKeys.GameObjName = previousPanelInfo.GameObjName;
panelSearchKeys.Level = previousPanelInfo.Level;
panelSearchKeys.UIData = previousPanelInfo.UIData;
panelSearchKeys.AssetBundleName = previousPanelInfo.AssetBundleName;
panelSearchKeys.PanelType = previousPanelInfo.PanelType;
UIManager.Instance.OpenUI(panelSearchKeys);
panelSearchKeys.Recycle2Cache();
}
}
}