/// <summary> /// 打开一个弹窗时候根据需求 获取需要关闭的弹窗 /// </summary> /// <param name="view"></param> /// <param name="popupOperate"></param> private Dictionary <int, UIBasePopupView> GetWillHidePopupView(UIBasePopupView popupView, PopupOpenOperateEnum popupOperate, bool isFailRecord, UIParameterArgs parameter) { Dictionary <int, UIBasePopupView> allWillHidePopupView = new Dictionary <int, UIBasePopupView>(); if (m_AllRecordViewPopup.Count == 0) { return(allWillHidePopupView); } switch (popupOperate) { case PopupOpenOperateEnum.KeepPreviousAvailable: break; case PopupOpenOperateEnum.HideAllOpenView: for (int dex = 0; dex < m_AllRecordViewPopup.Count; ++dex) { allWillHidePopupView.Add(dex, m_AllRecordViewPopup[dex]); } break; case PopupOpenOperateEnum.HideCurPagePopupView: for (int dex = 0; dex < m_AllRecordViewPopup.Count; ++dex) { if (m_AllRecordViewPopup[dex].BelongPageView == popupView.BelongPageView) { allWillHidePopupView.Add(dex, m_AllRecordViewPopup[dex]); } } //获取当前弹窗所属的页面 break; case PopupOpenOperateEnum.PriorityOrder: if (m_AllRecordViewPopup[m_AllRecordViewPopup.Count - 1].Priority >= popupView.Priority) { if (isFailRecord) { RecordWillPopupView(popupView.BelongPageView, popupView); popupView.FailShowByPriority(parameter); //记录参数 } else { popupView.HideWindow(UIParameterArgs.Create()); } } //加入到待弹出界面中 else { allWillHidePopupView.Add(m_AllRecordViewPopup.Count - 1, m_AllRecordViewPopup[m_AllRecordViewPopup.Count - 1]); } break; default: Debug.LogError("没有处理的枚举类型 " + popupOperate); break; } return(allWillHidePopupView); }