/// <summary> /// 关闭面板 /// </summary> public void ClosePanel(string uiname) { PanelBase panel = GetPanel(uiname); if (m_OnDisplayPanelDic.ContainsKey(panel.Level) && m_OnDisplayPanelDic[panel.Level].Contains(panel)) { panel.OnClose(); m_OnDisplayPanelDic[panel.Level].Remove(panel); } int index = panel.Level + 1; List <PanelBase> temp; while (m_OnDisplayPanelDic.ContainsKey(index)) { temp = m_OnDisplayPanelDic[index]; if (temp.Count > 0) { temp.End().OnClose(); temp.RemoveAt(temp.Count - 1); } else { break; } } if (m_OnDisplayPanelDic.ContainsKey(panel.Level - 1)) { m_OnDisplayPanelDic[panel.Level - 1].End().OnResume(); } }
/// <summary> /// 出栈 ,把页面从界面上移除 /// </summary> public PanelBase PopPanel() { if (m_PanelStack == null) { m_PanelStack = new Stack <PanelBase>(); } if (m_PanelStack.Count <= 0) { return(null); } PanelBase topPanel = m_PanelStack.Pop(); // 获取并移除栈顶面板 topPanel.OnClose(); // 关闭面板 return(topPanel); }