private void onOpen(PageType pageType, Action <bool> onOpen = null) { if (controllerDic.ContainsKey(pageType) == false) { Debug.Log("未注册"); return; } UIControllerData ControllerData = controllerDic[pageType]; ControllerData.currentType = 1; switch (ControllerData.simpleLoadedState) { case SimpleLoadedState.None: if (WaitLoadDic.ContainsKey(pageType) == false) { WaitLoadDic.Add(pageType, onOpen); } else { WaitLoadDic[pageType] = onOpen; } LoadPage(pageType); break; case SimpleLoadedState.Loading: if (WaitLoadDic.ContainsKey(pageType) == false) { WaitLoadDic.Add(pageType, onOpen); } else { WaitLoadDic[pageType] = onOpen; } break; case SimpleLoadedState.Success: if (controllerDic[pageType].skin == null) { controllerDic[pageType].skin = controllerDic[pageType].controller.getPage.skin; } controllerDic[pageType].skin.SetActive(true); controllerDic[pageType].controller.awake(); if (onOpen != null) { onOpen(true); } break; case SimpleLoadedState.Failed: break; default: if (onOpen != null) { onOpen(false); } //上一次加载错误 break; } }
private UIControllerData inject(PageType pageType, IController uiControllerData) { UIControllerData controllerData; if (controllerDic.TryGetValue(pageType, out controllerData) == true) { Debug.LogError("Controller注册重复:" + pageType); return(controllerData); } controllerData = new UIControllerData(uiControllerData); controllerDic.Add(pageType, controllerData); return(controllerData); }
private void onLoaded(UnityEngine.Object arg1, object arg2) { try { PageType pageType = (PageType)arg2; if (arg1 != null) { GameObject goClone = arg1 as GameObject; goClone.SetActive(true); goClone.transform.SetParent(uiParant); UIControllerData controllerData = controllerDic[pageType]; controllerData.controller.SetData(goClone, false); controllerData.skin = goClone; controllerData.simpleLoadedState = SimpleLoadedState.Success; if (controllerData.currentType == 0) { controllerData.controller.sleep(); } if (WaitLoadDic[pageType] != null) { WaitLoadDic[pageType](controllerDic[pageType].currentType == 1); } } else { if (WaitLoadDic[pageType] != null) { WaitLoadDic[pageType](false); } } } catch (Exception e) { Debug.Log(" onLoaded" + e.ToString()); } finally { Debug.Log(" onLoaded"); } }