/// <summary> /// 处理驻留选项 /// </summary> private void ProcessStayOptions(IntGroup viewGroup, StayOptions options) { if (options.HasFlag(StayOptions.PushStack) && !options.HasFlag(StayOptions.CombineStackTop)) { ProcessPushStack(viewGroup); } else if (options.HasFlag(StayOptions.PushStack) && options.HasFlag(StayOptions.CombineStackTop)) { ProcessPushCombineStackTop(viewGroup); } else if (!options.HasFlag(StayOptions.PushStack) && options.HasFlag(StayOptions.CombineStackTop)) { ProcessCombineStackTop(viewGroup); } }
/// <summary> /// 退出所有视图 /// 会有部分视图驻留 /// </summary> /// <param name="stayViewId">驻留视图</param> /// <param name="options">退出的视图选项</param> /// <param name="stayOptions">驻留的视图选项</param> public void QuitAll(int stayViewId, QuitOptions options = QuitOptions.None, StayOptions stayOptions = StayOptions.None) { _module.QuitAll(stayViewId, options, stayOptions); }
/// <summary> /// 退出所有视图 /// 会有部分视图驻留 /// </summary> /// <param name="stayViewGroup">驻留视图组</param> /// <param name="options">退出的视图选项</param> /// <param name="stayOptions">驻留的视图选项</param> public void QuitAll(IntGroup stayViewGroup, QuitOptions options = QuitOptions.None, StayOptions stayOptions = StayOptions.None) { _module.QuitAll(stayViewGroup, options, stayOptions); }
/// <summary> /// 退出所有视图 /// 会有部分视图驻留 /// </summary> /// <param name="stayViewId">驻留视图</param> /// <param name="options">退出的视图选项</param> /// <param name="stayOptions">驻留的视图选项</param> public void QuitAll(int stayViewId, QuitOptions options = QuitOptions.None, StayOptions stayOptions = StayOptions.None) { QuitAll(IntGroup.Get(stayViewId), options, stayOptions); }
/// <summary> /// 退出所有视图 /// 会有部分视图驻留 /// </summary> /// <param name="stayViewGroup">驻留视图组</param> /// <param name="options">退出的视图选项</param> /// <param name="stayOptions">驻留的视图选项</param> public void QuitAll(IntGroup stayViewGroup, QuitOptions options = QuitOptions.None, StayOptions stayOptions = StayOptions.None) { _tempQuitList.Clear(); foreach (int id in _viewDic.Keys) { if (!stayViewGroup.Contains(id)) { _tempQuitList.Add(id); } } for (int i = 0; i < _tempQuitList.Count; i++) { Quit(_tempQuitList[i], QuitOptionsFilter(QuitOptions.LeaveStack, options), null); } if (options.HasFlag(QuitOptions.LeaveStack)) { ResetStack(); } ProcessStayOptions(stayViewGroup, stayOptions); }