using GFramework.Core.Abstractions.system; using GFramework.Game.Abstractions.enums; namespace GFramework.Game.Abstractions.ui; /// /// UI路由管理器接口,用于管理UI界面的导航和切换操作 /// public interface IUiRouter : ISystem { /// /// 绑定UI根节点 /// /// UI根节点接口实例 void BindRoot(IUiRoot root); /// /// 将指定的UI界面压入路由栈,显示新的UI界面 /// /// UI界面的唯一标识符 /// 进入界面的参数,可为空 /// 界面切换策略,默认为Exclusive(独占) void Push(string uiKey, IUiPageEnterParam? param = null, UiTransitionPolicy policy = UiTransitionPolicy.Exclusive); /// /// 弹出路由栈顶的UI界面,返回到上一个界面 /// /// 界面弹出策略,默认为Destroy(销毁) void Pop(UiPopPolicy policy = UiPopPolicy.Destroy); /// /// 替换当前UI界面为指定的新界面 /// /// 新UI界面的唯一标识符 /// 进入界面的参数,可为空 /// 界面弹出策略,默认为销毁当前界面 /// 界面过渡策略,默认为独占模式 void Replace( string uiKey, IUiPageEnterParam? param = null, UiPopPolicy popPolicy = UiPopPolicy.Destroy, UiTransitionPolicy pushPolicy = UiTransitionPolicy.Exclusive ); /// /// 清空所有UI界面,重置路由状态 /// void Clear(); /// /// 注册UI切换处理器 /// /// 处理器实例 /// 执行选项 void RegisterHandler(IUiTransitionHandler handler, UiTransitionHandlerOptions? options = null); /// /// 注销UI切换处理器 /// /// 处理器实例 void UnregisterHandler(IUiTransitionHandler handler); }