mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
refactor(ui): 优化UiRouterBase中的页面销毁和隐藏逻辑
- 区分永久移除和临时隐藏的处理流程,销毁时才调用OnExit方法 - 重构日志消息以更准确反映操作类型 - 简化离开守卫检查的循环逻辑,提高代码可读性 - 添加注释说明销毁与隐藏的不同行为 - 调整日志输出格式,保持一致性 - [release ci]
This commit is contained in:
parent
aaf728ad1a
commit
89227ff802
@ -556,18 +556,27 @@ public abstract class UiRouterBase : AbstractSystem, IUiRouter
|
|||||||
if (!layerDict.TryGetValue(uiKey, out var page))
|
if (!layerDict.TryGetValue(uiKey, out var page))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
page.OnExit();
|
|
||||||
page.OnHide();
|
|
||||||
|
|
||||||
if (destroy)
|
if (destroy)
|
||||||
{
|
{
|
||||||
|
// 永久移除
|
||||||
|
page.OnExit(); // ✅ 只在 Destroy 时 Exit
|
||||||
_uiRoot.RemoveUiPage(page);
|
_uiRoot.RemoveUiPage(page);
|
||||||
layerDict.Remove(uiKey);
|
layerDict.Remove(uiKey);
|
||||||
Log.Debug("Suspend & Destroy UI from layer: {0}, layer={1}", uiKey, layer);
|
|
||||||
|
Log.Debug(
|
||||||
|
"Hide & Destroy UI from layer: {0}, layer={1}",
|
||||||
|
uiKey, layer
|
||||||
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.Debug("Suspend & Suspend UI from layer: {0}, layer={1}", uiKey, layer);
|
// 临时隐藏(可恢复)
|
||||||
|
page.OnHide(); // ✅ Hide ≠ Exit
|
||||||
|
|
||||||
|
Log.Debug(
|
||||||
|
"Hide UI from layer (suspend): {0}, layer={1}",
|
||||||
|
uiKey, layer
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -695,11 +704,9 @@ public abstract class UiRouterBase : AbstractSystem, IUiRouter
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guard.CanInterrupt)
|
if (!guard.CanInterrupt) continue;
|
||||||
{
|
Log.Debug("Leave guard {0} passed, can interrupt = true", guard.GetType().Name);
|
||||||
Log.Debug("Leave guard {0} passed, can interrupt = true", guard.GetType().Name);
|
return true;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user