Ejemplo n.º 1
0
        /// <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);
        }