|
@@ -13,6 +13,7 @@ namespace GFGGame
|
|
|
public object viewData;
|
|
|
public IUIView iUIView;
|
|
|
public bool backRefresh;
|
|
|
+ public List<String> smallWindow;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 视图管理类
|
|
@@ -199,6 +200,24 @@ namespace GFGGame
|
|
|
viewStructure.iUIView = obj;
|
|
|
_viewStack.Add(viewStructure);
|
|
|
if (_viewStack.Count > 1 && !hideOthers) {
|
|
|
+ if (_viewStack[_viewStack.Count - 2].smallWindow == null)
|
|
|
+ _viewStack[_viewStack.Count - 2].smallWindow = new List<string>();
|
|
|
+
|
|
|
+ _viewStack[_viewStack.Count - 2].smallWindow.Clear();
|
|
|
+ //把开着的小弹窗存起来
|
|
|
+ foreach (var objName in _viewDic.Keys)
|
|
|
+ {
|
|
|
+ IUIView view = (IUIView)_viewDic[objName];
|
|
|
+ if (view.isReturnWindow)
|
|
|
+ {
|
|
|
+ if (view.isShowing)
|
|
|
+ {
|
|
|
+ _viewStack[_viewStack.Count - 2].smallWindow.Add(objName);
|
|
|
+ view.Hide();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
_viewStack[_viewStack.Count - 2].iUIView.Hide();
|
|
|
}
|
|
|
}
|
|
@@ -301,15 +320,20 @@ namespace GFGGame
|
|
|
viewStructure = _viewStack[_viewStack.Count - 1];
|
|
|
ViewManager.Show($"GFGGame.{viewStructure.name}", viewStructure.viewData, false, backRefresh, true);
|
|
|
//重新打开小弹窗
|
|
|
- foreach (var objName in _viewDic.Keys)
|
|
|
+ foreach (var objName in viewStructure.smallWindow)
|
|
|
{
|
|
|
- if (objName != viewStructure.name)
|
|
|
- {
|
|
|
- IUIView view = (IUIView)_viewDic[objName];
|
|
|
- if (view.isShowing)
|
|
|
- view.Show();
|
|
|
- }
|
|
|
+ ViewManager.Show($"GFGGame.{objName}");
|
|
|
}
|
|
|
+
|
|
|
+ //foreach (var objName in _viewDic.Keys)
|
|
|
+ //{
|
|
|
+ // if (objName != viewStructure.name)
|
|
|
+ // {
|
|
|
+ // IUIView view = (IUIView)_viewDic[objName];
|
|
|
+ // if (view.isShowing)
|
|
|
+ // view.Show();
|
|
|
+ // }
|
|
|
+ //}
|
|
|
}
|
|
|
}
|
|
|
}
|