/// <summary> /// 隐藏面板 /// </summary> /// <param name="id">面板id</param> /// <param name="ignoreCacheBack">是否忽略cacheBack</param> /// <param name="action"></param> /// <param name="needDestroy"></param> /// <param name="?"></param> public void HidePanel(PanelID id, bool needReturnBack, Action action = null) { if (!IsShowPanel(id)) { return; } UIPanelBase panel = GetPanel(id); int pid = (int)id; Action hideCallback = () => { LocalPanelInfo lp = null; if (TryGetLocalPanelInfo(id, out lp) && lp.PanelTaData.Enable) { UIFrameManager.Instance.ResetTabs(); } if (needReturnBack) { if (panel.PanelInfo.CacheLv != PanelCacheLv.None) { OnPanelCacheBack(id); } //如果有前置面板,显示前置面板 if (null != panel.PrePanelData && panel.PrePanelData.PID != PanelID.None) { ShowPanel(panel.PrePanelData.PID , prePanelData: panel.PrePanelData.PrePanelData , data: panel.PrePanelData.Data, jumpData: panel.PrePanelData.JumpData); } } //主界面影藏,根节点也隐藏 //if (id == PanelID.MainPanel) //{ // UIRootHelper.Instance.SetPanelRootStatusByType(PanelRootType.Main,false); //} }; if (null != action) { hideCallback += action; } panel.HidePanel(hideCallback); }