/// <summary> /// 处理关闭当前弹窗时候的逻辑 /// </summary> /// <param name="view"></param> /// <param name="closeOperate"></param> private void DealHidePopView(PopupCloseOperateEnum closeOperate) { if (m_AllRecordViewPopup.Count == 0) { return; } UIBasePopupView nectShowPage = null; //关闭这个弹窗口这个弹窗打开之前的弹窗 switch (closeOperate) { case PopupCloseOperateEnum.Simple: break; case PopupCloseOperateEnum.AutoPopup: for (int dex = m_AllRecordViewPopup.Count - 1; dex >= 0; --dex) { if (dex > 0 && m_AllRecordViewPopup[dex] == this) { nectShowPage = m_AllRecordViewPopup[dex - 1]; break; } } AutoPupupView(nectShowPage); break; case PopupCloseOperateEnum.CloseAndClearCurPage: List <int> allPopupViewCurPage = new List <int>(); for (int dex = m_AllRecordViewPopup.Count - 1; dex >= 0; --dex) { if (m_AllRecordViewPopup[dex] != this && m_AllRecordViewPopup[dex].BelongPageView == this.BelongPageView) { allPopupViewCurPage.Add(dex); } } for (int dex = 0; dex < allPopupViewCurPage.Count; ++dex) { m_AllRecordViewPopup[dex].HideWindow(UIParameterArgs.Create()); } //关闭弹窗 allPopupViewCurPage.Reverse(); for (int dex = 0; dex < allPopupViewCurPage.Count; ++dex) { m_AllRecordViewPopup.RemoveAt(allPopupViewCurPage[dex]); } //删除打开记录 if (m_LowerPriorityPopupView.ContainsKey(this.BelongPageView)) { m_LowerPriorityPopupView[this.BelongPageView].Clear(); } break; default: Debug.LogError("没有处理的类型 " + closeOperate); break; } }
/// <summary> /// 关闭一个弹窗界面 /// </summary> /// <param name="view"></param> /// <param name="closeOperate"></param> public void ClosePopup(PopupCloseOperateEnum closeOperate) { this.HideWindow(UIParameterArgs.Create()); m_AllRecordViewPopup.Remove(this); DealHidePopView(closeOperate); }