From 8a4e2602ff2ec78a0a1af1fa35088aa649168249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9C=E8=99=9E=E6=B8=A0=E6=88=90=E2=80=9D?= <“yuqucheng2006@qq.com”> Date: Thu, 17 Sep 2026 16:52:44 +0800 Subject: [PATCH] =?UTF-8?q?refactor(UI):=20=E4=BF=AE=E5=A4=8D=E5=BC=B9?= =?UTF-8?q?=E7=AA=97=E8=BF=94=E5=9B=9E=E6=A0=88=E9=80=BB=E8=BE=91=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 将TimeSelection的OnCancelClick改为public方法方便外部调用 2. 统一各弹窗的返回注册逻辑,修复返回栈未重置的问题 3. 修正代码缩进和空行格式问题 --- Assets/Scripts/UI/Components/TimeSelection.cs | 2 +- .../UI/Pages/DeviceInfoPage/LCDSetting.cs | 7 +++- .../DeviceInfoPage/VideoAndSoundSetting.cs | 14 ++++++-- .../ScheduleSetting/ScheduleEditPage.cs | 34 ++++++++++++++++--- 4 files changed, 49 insertions(+), 8 deletions(-) diff --git a/Assets/Scripts/UI/Components/TimeSelection.cs b/Assets/Scripts/UI/Components/TimeSelection.cs index fadebc2..6c1494e 100644 --- a/Assets/Scripts/UI/Components/TimeSelection.cs +++ b/Assets/Scripts/UI/Components/TimeSelection.cs @@ -51,7 +51,7 @@ namespace Kill.UI.Components onConfirm?.Invoke(selectedHour, selectedMinute); Destroy(gameObject); } - private void OnCancelClick() + public void OnCancelClick() { Destroy(gameObject); } diff --git a/Assets/Scripts/UI/Pages/DeviceInfoPage/LCDSetting.cs b/Assets/Scripts/UI/Pages/DeviceInfoPage/LCDSetting.cs index 079d7c9..ab7e264 100644 --- a/Assets/Scripts/UI/Pages/DeviceInfoPage/LCDSetting.cs +++ b/Assets/Scripts/UI/Pages/DeviceInfoPage/LCDSetting.cs @@ -268,7 +268,12 @@ namespace Kill.UI.Pages int currentIndex = GetDormancyIndexFromValue(sleepSetting.SleepTime); m.Init(currentIndex, OnDormancySelected); m.gameObject.SetActive(true); - UIManager.Instance.RegisterBackAction(m.Cancel); + UIManager.Instance.RegisterBackAction(() => + { + m.Cancel(); + UIManager.Instance.RegisterBackAction(Back); + } + ); } /// diff --git a/Assets/Scripts/UI/Pages/DeviceInfoPage/VideoAndSoundSetting.cs b/Assets/Scripts/UI/Pages/DeviceInfoPage/VideoAndSoundSetting.cs index 05e0f5d..371dc57 100644 --- a/Assets/Scripts/UI/Pages/DeviceInfoPage/VideoAndSoundSetting.cs +++ b/Assets/Scripts/UI/Pages/DeviceInfoPage/VideoAndSoundSetting.cs @@ -245,7 +245,12 @@ namespace Kill.UI.Pages int currentIndex = GetVideoLengthIndexFromValue(multimediaSetting.RecordDuration); m.Init(currentIndex, OnVideoLengthSelected); m.gameObject.SetActive(true); - UIManager.Instance.RegisterBackAction(m.Cancel); + UIManager.Instance.RegisterBackAction(() => + { + m.Cancel(); + UIManager.Instance.RegisterBackAction(Back); + } + ); } /// @@ -269,7 +274,12 @@ namespace Kill.UI.Pages int currentIndex = GetSoundEffectIndexFromValue(multimediaSetting.SoundType); m.Init(currentIndex, OnSoundEffectSelected,OnSoundEffectClick); m.gameObject.SetActive(true); - UIManager.Instance.RegisterBackAction(m.Cancel); + UIManager.Instance.RegisterBackAction(() => + { + m.Cancel(); + UIManager.Instance.RegisterBackAction(Back); + } + ); } /// diff --git a/Assets/Scripts/UI/Pages/HomePage/ScheduleSetting/ScheduleEditPage.cs b/Assets/Scripts/UI/Pages/HomePage/ScheduleSetting/ScheduleEditPage.cs index 0925fa3..d64cbba 100644 --- a/Assets/Scripts/UI/Pages/HomePage/ScheduleSetting/ScheduleEditPage.cs +++ b/Assets/Scripts/UI/Pages/HomePage/ScheduleSetting/ScheduleEditPage.cs @@ -67,7 +67,7 @@ namespace Kill.UI.Pages private byte _endHour; private byte _endMinute; private byte _repeat; - + private Action lastback; /// /// 初始化编辑页面 /// @@ -77,6 +77,7 @@ namespace Kill.UI.Pages /// 删除回调 public void Init(int taskIndex, ScheduleTask task, Action onSave = null, Action onDelete = null) { + lastback = UIManager.Instance.GetBackAction(); _editTaskIndex = taskIndex; _onSaveCallback = onSave; _onDeleteCallback = onDelete; @@ -84,7 +85,7 @@ namespace Kill.UI.Pages // 加载多语言 LoadLocalizedStrings(); - + // 设置默认值或现有值 if (taskIndex < 0) @@ -278,6 +279,12 @@ namespace Kill.UI.Pages Transform parent = componentParent != null ? componentParent : transform; _modeSelectPageInstance = Instantiate(modeSelectPagePrefab, parent); _modeSelectPageInstance.gameObject.SetActive(false); + UIManager.Instance.RegisterBackAction(() => + { + _modeSelectPageInstance.Cancel(); + UIManager.Instance.RegisterBackAction(OnBackButtonClick); + } + ); } return _modeSelectPageInstance; } @@ -314,6 +321,12 @@ namespace Kill.UI.Pages Transform parent = componentParent != null ? componentParent : transform; _startTimeSelectionInstance = Instantiate(timeSelectionPrefab, parent); _startTimeSelectionInstance.gameObject.SetActive(false); + UIManager.Instance.RegisterBackAction(() => + { + _startTimeSelectionInstance.OnCancelClick(); + UIManager.Instance.RegisterBackAction(OnBackButtonClick); + } + ); } return _startTimeSelectionInstance; } @@ -328,7 +341,7 @@ namespace Kill.UI.Pages { page.gameObject.SetActive(true); page.Init(_startHour, _startMinute, OnStartTimeSelected); - page.title.text=LanguageManager.Instance.GetLanguage("100142"); + page.title.text = LanguageManager.Instance.GetLanguage("100142"); } } @@ -352,6 +365,12 @@ namespace Kill.UI.Pages Transform parent = componentParent != null ? componentParent : transform; _endTimeSelectionInstance = Instantiate(timeSelectionPrefab, parent); _endTimeSelectionInstance.gameObject.SetActive(false); + UIManager.Instance.RegisterBackAction(() => + { + _endTimeSelectionInstance.OnCancelClick(); + UIManager.Instance.RegisterBackAction(OnBackButtonClick); + } + ); } return _endTimeSelectionInstance; } @@ -366,7 +385,7 @@ namespace Kill.UI.Pages { page.gameObject.SetActive(true); page.Init(_endHour, _endMinute, OnEndTimeSelected); - page.title.text=LanguageManager.Instance.GetLanguage("100143"); + page.title.text = LanguageManager.Instance.GetLanguage("100143"); } } @@ -390,6 +409,12 @@ namespace Kill.UI.Pages Transform parent = componentParent != null ? componentParent : transform; _repeatSelectionInstance = Instantiate(repeatSelectionPrefab, parent); _repeatSelectionInstance.gameObject.SetActive(false); + UIManager.Instance.RegisterBackAction(() => + { + Destroy(_repeatSelectionInstance.gameObject); + UIManager.Instance.RegisterBackAction(OnBackButtonClick); + } + ); } return _repeatSelectionInstance; } @@ -477,6 +502,7 @@ namespace Kill.UI.Pages { Debug.Log("[ScheduleEditPage] 返回"); ClosePage(); + UIManager.Instance.RegisterBackAction(lastback); } ///