private bool _showView(ViewBase caller, string callee, Hashtable arg, bool append = false) { Transform tar; if (!append) { tar = null; foreach (Transform i in tran) { if (i.name == callee) { tar = i; break; } } } else { if (caller == null) { Debug.Log("???????????????????μ???????????????"); return(false); } tar = caller.transform.Find(callee); } if (tar == null) { Object t2 = LoadView(rootPath + callee); if (t2) { //if (caller!=null) // caller.gameObject.SetActive(append); GameObject t3 = (GameObject)(t2); //Destroy(t2,0.3f); t3.name = callee; t3.transform.SetParent(tran, false); var v = BindViewScript(t3, callee); tar = t3.transform; //PushViewToStack(v); v.Init(arg); //v.OnViewShow(arg); //return true; } else { Debug.Log("load view failed:" + callee); return(false); } } bool overlay = false; // if (caller != null) { caller.gameObject.SetActive(append); } var old = PeekTop(); if (old != null) { old.gameObject.SetActive(append); } tar.gameObject.SetActive(true); var t_view = tar.GetComponent <ViewBase>(); if (!append) { if (old != null) { old.Hide(old.LastArg); } if (!overLayView) { PushViewToStack(t_view); } else { overLayView = t_view; } } else { if (caller != null) { tar.SetParent(caller.transform, false); tar.SetAsLastSibling(); caller.AddChild(t_view); } t_view.parent = caller; } if (caller != null) { t_view.Caller = caller; t_view.CallerName = caller.GetType().Name; } canvasScaler.referenceResolution = layoutWH; if (!append) { t_view.Show(arg); } if (overLayView != null) { overLayView.transform.SetAsLastSibling(); } GC(); return(true); }