Ejemplo n.º 1
0
 private void PushViewToLayer(UIViewBase view, params object[] args)
 {
     if (view != null)
     {
         //设置参数
         view.SetArguments(args);
         //添加到相应的列表
         viewList.Add(view);
         //压入对应的层中
         viewDic[view.config.viewLayer].Push(view);
     }
 }
Ejemplo n.º 2
0
        //展示界面
        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();
        }