|
@@ -11,6 +11,7 @@ namespace GFGGame
|
|
|
public string name;
|
|
|
public object viewData;
|
|
|
public IUIView iUIView;
|
|
|
+ public bool backRefresh;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 视图管理类
|
|
@@ -118,7 +119,8 @@ namespace GFGGame
|
|
|
/// <param name="viewData">要传递给视图的参数</param>
|
|
|
/// <param name="goBackParams">从该视图返回的视图信息</param>
|
|
|
/// <param name="hideOthers">是否关闭其他视图</param>
|
|
|
- public static bool Show(string fullViewName, object viewData = null, bool hideOthers = false)
|
|
|
+ /// <param name="backRefresh">返回上一个界面的时候,上一个界面是否需要刷新界面</param>
|
|
|
+ public static bool Show(string fullViewName, object viewData = null, bool hideOthers = false, bool backRefresh = true,bool isHideToShow = false)
|
|
|
{
|
|
|
string name = GetName(fullViewName);
|
|
|
if (!GameGlobal.skipCheckOpen && !FunctionOpenDataManager.Instance.CheckIsFunOpenById(name))
|
|
@@ -148,6 +150,10 @@ namespace GFGGame
|
|
|
view.viewData = viewData;
|
|
|
if (!view.isShowing)
|
|
|
{
|
|
|
+ if (isHideToShow && _viewStack.Count > 0)
|
|
|
+ view.backRefresh = _viewStack[_viewStack.Count - 1].backRefresh;
|
|
|
+ else
|
|
|
+ view.backRefresh = true;
|
|
|
view.Show();
|
|
|
}
|
|
|
else
|
|
@@ -165,6 +171,10 @@ namespace GFGGame
|
|
|
//判断是否需要保存界面数据, 会帮助关闭上一个保存界面
|
|
|
if (obj.isReturnView && (_viewStack.Count <= 0 || (_viewStack.Count > 0 && _viewStack[_viewStack.Count - 1].name != name)))
|
|
|
{
|
|
|
+ //保存上一个界面是否需要返回刷新
|
|
|
+ if (!isHideToShow && _viewStack.Count > 1)
|
|
|
+ _viewStack[_viewStack.Count - 1].backRefresh = backRefresh;
|
|
|
+
|
|
|
ViewStructure viewStructure = new ViewStructure();
|
|
|
viewStructure.name = name;
|
|
|
viewStructure.viewData = viewData;
|
|
@@ -221,12 +231,12 @@ namespace GFGGame
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- public static bool Show<T>(object viewData = null, bool hideOthers = false) where T : class, new()
|
|
|
+ public static bool Show<T>(object viewData = null, bool hideOthers = false, bool backRefresh = true) where T : class, new()
|
|
|
{
|
|
|
// string[] names = typeof(T).FullName.Split('.');
|
|
|
// string viewName = names[names.Length - 1];
|
|
|
//string name = GetName(typeof(T).FullName);
|
|
|
- return ViewManager.Show(typeof(T).FullName, viewData, hideOthers);
|
|
|
+ return ViewManager.Show(typeof(T).FullName, viewData, hideOthers, backRefresh);
|
|
|
}
|
|
|
|
|
|
public static void HideWin(string viewName)
|
|
@@ -238,6 +248,7 @@ namespace GFGGame
|
|
|
{
|
|
|
bool hasShowingView = false;
|
|
|
bool needShowNextView = false;
|
|
|
+ bool backRefresh = true;
|
|
|
foreach (var info in _viewDic.Keys)
|
|
|
{
|
|
|
IUIView objIsShowing = _viewDic[info];
|
|
@@ -258,8 +269,10 @@ namespace GFGGame
|
|
|
if (!hasShowingView || (viewStructure.iUIView.isReturnView && viewStructure.name == viewName))
|
|
|
{
|
|
|
//关闭自己,在队列里去除
|
|
|
- if (viewStructure.iUIView.isReturnView && viewStructure.name == viewName)
|
|
|
+ if (viewStructure.iUIView.isReturnView && viewStructure.name == viewName) {
|
|
|
+ backRefresh = viewStructure.backRefresh;
|
|
|
_viewStack.RemoveAt(_viewStack.Count - 1);
|
|
|
+ }
|
|
|
|
|
|
if (_viewStack.Count >= 1)
|
|
|
needShowNextView = true;
|
|
@@ -268,7 +281,8 @@ namespace GFGGame
|
|
|
|
|
|
if (needShowNextView) {
|
|
|
viewStructure = _viewStack[_viewStack.Count - 1];
|
|
|
- ViewManager.Show($"GFGGame.{viewStructure.name}", viewStructure.viewData);
|
|
|
+ ViewManager.Show($"GFGGame.{viewStructure.name}", viewStructure.viewData, false, backRefresh, true);
|
|
|
+ //重新打开小弹窗
|
|
|
foreach (var objName in _viewDic.Keys)
|
|
|
{
|
|
|
if (objName != viewStructure.name)
|
|
@@ -450,7 +464,7 @@ namespace GFGGame
|
|
|
/// 任务界面跳转
|
|
|
/// </summary>
|
|
|
/// <param name="jumpId"></param>
|
|
|
- public static void JumpToView(string jumpId, object[] param, bool hideOther = false, Action onSuccess = null)
|
|
|
+ public static void JumpToView(string jumpId, object[] param, bool hideOther = false, bool backRefresh = true, Action onSuccess = null)
|
|
|
{
|
|
|
switch (jumpId)
|
|
|
{
|
|
@@ -458,13 +472,13 @@ namespace GFGGame
|
|
|
|
|
|
if (LeagueDataManager.Instance.Type == LeagueJoinType.Join)
|
|
|
{
|
|
|
- ViewManager.Show<LeagueView>(null, hideOther);
|
|
|
+ ViewManager.Show<LeagueView>(null, hideOther, backRefresh);
|
|
|
ViewManager.Show($"GFGGame.{jumpId}");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (!FunctionOpenDataManager.Instance.CheckIsFunOpenById(nameof(LeagueView))) return;
|
|
|
- ViewManager.Show<LeagueJoinView>(null, hideOther);
|
|
|
+ ViewManager.Show<LeagueJoinView>(null, hideOther, backRefresh);
|
|
|
}
|
|
|
|
|
|
break;
|
|
@@ -472,36 +486,36 @@ namespace GFGGame
|
|
|
if (!FunctionOpenDataManager.Instance.CheckIsFunOpenById(nameof(LeagueView))) return;
|
|
|
if (LeagueDataManager.Instance.Type == LeagueJoinType.Join)
|
|
|
{
|
|
|
- ViewManager.Show<LeagueView>(null, hideOther);
|
|
|
+ ViewManager.Show<LeagueView>(null, hideOther, backRefresh);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- ViewManager.Show<LeagueJoinView>(null, hideOther);
|
|
|
+ ViewManager.Show<LeagueJoinView>(null, hideOther, backRefresh);
|
|
|
}
|
|
|
break;
|
|
|
case nameof(StoreView):
|
|
|
- ViewManager.Show<StoreView>(param, hideOther);
|
|
|
+ ViewManager.Show<StoreView>(param, hideOther, backRefresh);
|
|
|
break;
|
|
|
case nameof(StoryChapterListView):
|
|
|
- ViewManager.Show($"GFGGame.{jumpId}", param, hideOther);
|
|
|
+ ViewManager.Show($"GFGGame.{jumpId}", param, hideOther, backRefresh);
|
|
|
break;
|
|
|
case nameof(StoryChapterView):
|
|
|
- ViewManager.Show<StoryChapterView>(param[0], hideOther);
|
|
|
+ ViewManager.Show<StoryChapterView>(param[0], hideOther, backRefresh);
|
|
|
break;
|
|
|
case nameof(FirstChargeBonusView):
|
|
|
- ViewManager.Show<FirstChargeBonusView>(param, false);
|
|
|
+ ViewManager.Show<FirstChargeBonusView>(param, false, backRefresh);
|
|
|
break;
|
|
|
case nameof(ClothingSyntheticView):
|
|
|
- ViewManager.Show<ClothingSyntheticView>(param, hideOther);
|
|
|
+ ViewManager.Show<ClothingSyntheticView>(param, hideOther, backRefresh);
|
|
|
break;
|
|
|
case nameof(LuckyBoxView):
|
|
|
if(param.Length > 0)
|
|
|
- ViewManager.Show<LuckyBoxView>(param[0], hideOther);
|
|
|
+ ViewManager.Show<LuckyBoxView>(param[0], hideOther, backRefresh);
|
|
|
else
|
|
|
- ViewManager.Show<LuckyBoxView>(null, hideOther);
|
|
|
+ ViewManager.Show<LuckyBoxView>(null, hideOther, backRefresh);
|
|
|
break;
|
|
|
default:
|
|
|
- ViewManager.Show($"GFGGame.{jumpId}", null, hideOther);
|
|
|
+ ViewManager.Show($"GFGGame.{jumpId}", null, hideOther, backRefresh);
|
|
|
break;
|
|
|
}
|
|
|
onSuccess?.Invoke();
|