private void PushViewToLayer(UIViewBase view, params object[] args) { if (view != null) { //设置参数 view.SetArguments(args); //添加到相应的列表 viewList.Add(view); //压入对应的层中 viewDic[view.config.viewLayer].Push(view); } }
//展示界面 public void ShowView(UIViewName viewName, params object[] args) { //获取界面配置 SO_UIViewConfig config = GetConfig(viewName); if (config == null) { return; } UIViewBase view = null; //如果这个窗口是唯一的 if (config.unique) { //如果界面是唯一打开的,则判断下是否打开过这个界面 for (int i = 0; i < viewList.Count; ++i) { if (viewList[i].config.viewName == viewName) { //我靠居然打开着呢! view = viewList[i]; break; } } //当前这个界面被打开了 if (view != null) { if (view.layerController == null) { UtilityHelper.LogError(string.Format("Show view error: {0}, not layer", viewName)); return; } //设置参数,重新放入窗口层级控制器 view.SetArguments(args); view.layerController.Push(view); } else { //没有,打开个新的吧 ShowViewFromCacheOrCreateNew(config, args); } } else { //开!!什么开... ShowViewFromCacheOrCreateNew(config, args); } //刷新显示、隐藏状态 UpdateViewHideState(); }