refactor(UI): 修复弹窗返回栈逻辑并优化代码
1. 将TimeSelection的OnCancelClick改为public方法方便外部调用 2. 统一各弹窗的返回注册逻辑,修复返回栈未重置的问题 3. 修正代码缩进和空行格式问题
This commit is contained in:
parent
0a0a935c01
commit
8a4e2602ff
@ -51,7 +51,7 @@ namespace Kill.UI.Components
|
||||
onConfirm?.Invoke(selectedHour, selectedMinute);
|
||||
Destroy(gameObject);
|
||||
}
|
||||
private void OnCancelClick()
|
||||
public void OnCancelClick()
|
||||
{
|
||||
Destroy(gameObject);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@ -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);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -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);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@ -67,7 +67,7 @@ namespace Kill.UI.Pages
|
||||
private byte _endHour;
|
||||
private byte _endMinute;
|
||||
private byte _repeat;
|
||||
|
||||
private Action lastback;
|
||||
/// <summary>
|
||||
/// 初始化编辑页面
|
||||
/// </summary>
|
||||
@ -77,6 +77,7 @@ namespace Kill.UI.Pages
|
||||
/// <param name="onDelete">删除回调</param>
|
||||
public void Init(int taskIndex, ScheduleTask task, Action<ScheduleTask, int> onSave = null, Action<int> 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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user