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);
|
onConfirm?.Invoke(selectedHour, selectedMinute);
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}
|
}
|
||||||
private void OnCancelClick()
|
public void OnCancelClick()
|
||||||
{
|
{
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -268,7 +268,12 @@ namespace Kill.UI.Pages
|
|||||||
int currentIndex = GetDormancyIndexFromValue(sleepSetting.SleepTime);
|
int currentIndex = GetDormancyIndexFromValue(sleepSetting.SleepTime);
|
||||||
m.Init(currentIndex, OnDormancySelected);
|
m.Init(currentIndex, OnDormancySelected);
|
||||||
m.gameObject.SetActive(true);
|
m.gameObject.SetActive(true);
|
||||||
UIManager.Instance.RegisterBackAction(m.Cancel);
|
UIManager.Instance.RegisterBackAction(() =>
|
||||||
|
{
|
||||||
|
m.Cancel();
|
||||||
|
UIManager.Instance.RegisterBackAction(Back);
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -245,7 +245,12 @@ namespace Kill.UI.Pages
|
|||||||
int currentIndex = GetVideoLengthIndexFromValue(multimediaSetting.RecordDuration);
|
int currentIndex = GetVideoLengthIndexFromValue(multimediaSetting.RecordDuration);
|
||||||
m.Init(currentIndex, OnVideoLengthSelected);
|
m.Init(currentIndex, OnVideoLengthSelected);
|
||||||
m.gameObject.SetActive(true);
|
m.gameObject.SetActive(true);
|
||||||
UIManager.Instance.RegisterBackAction(m.Cancel);
|
UIManager.Instance.RegisterBackAction(() =>
|
||||||
|
{
|
||||||
|
m.Cancel();
|
||||||
|
UIManager.Instance.RegisterBackAction(Back);
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -269,7 +274,12 @@ namespace Kill.UI.Pages
|
|||||||
int currentIndex = GetSoundEffectIndexFromValue(multimediaSetting.SoundType);
|
int currentIndex = GetSoundEffectIndexFromValue(multimediaSetting.SoundType);
|
||||||
m.Init(currentIndex, OnSoundEffectSelected,OnSoundEffectClick);
|
m.Init(currentIndex, OnSoundEffectSelected,OnSoundEffectClick);
|
||||||
m.gameObject.SetActive(true);
|
m.gameObject.SetActive(true);
|
||||||
UIManager.Instance.RegisterBackAction(m.Cancel);
|
UIManager.Instance.RegisterBackAction(() =>
|
||||||
|
{
|
||||||
|
m.Cancel();
|
||||||
|
UIManager.Instance.RegisterBackAction(Back);
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -67,7 +67,7 @@ namespace Kill.UI.Pages
|
|||||||
private byte _endHour;
|
private byte _endHour;
|
||||||
private byte _endMinute;
|
private byte _endMinute;
|
||||||
private byte _repeat;
|
private byte _repeat;
|
||||||
|
private Action lastback;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 初始化编辑页面
|
/// 初始化编辑页面
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -77,6 +77,7 @@ namespace Kill.UI.Pages
|
|||||||
/// <param name="onDelete">删除回调</param>
|
/// <param name="onDelete">删除回调</param>
|
||||||
public void Init(int taskIndex, ScheduleTask task, Action<ScheduleTask, int> onSave = null, Action<int> onDelete = null)
|
public void Init(int taskIndex, ScheduleTask task, Action<ScheduleTask, int> onSave = null, Action<int> onDelete = null)
|
||||||
{
|
{
|
||||||
|
lastback = UIManager.Instance.GetBackAction();
|
||||||
_editTaskIndex = taskIndex;
|
_editTaskIndex = taskIndex;
|
||||||
_onSaveCallback = onSave;
|
_onSaveCallback = onSave;
|
||||||
_onDeleteCallback = onDelete;
|
_onDeleteCallback = onDelete;
|
||||||
@ -278,6 +279,12 @@ namespace Kill.UI.Pages
|
|||||||
Transform parent = componentParent != null ? componentParent : transform;
|
Transform parent = componentParent != null ? componentParent : transform;
|
||||||
_modeSelectPageInstance = Instantiate(modeSelectPagePrefab, parent);
|
_modeSelectPageInstance = Instantiate(modeSelectPagePrefab, parent);
|
||||||
_modeSelectPageInstance.gameObject.SetActive(false);
|
_modeSelectPageInstance.gameObject.SetActive(false);
|
||||||
|
UIManager.Instance.RegisterBackAction(() =>
|
||||||
|
{
|
||||||
|
_modeSelectPageInstance.Cancel();
|
||||||
|
UIManager.Instance.RegisterBackAction(OnBackButtonClick);
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return _modeSelectPageInstance;
|
return _modeSelectPageInstance;
|
||||||
}
|
}
|
||||||
@ -314,6 +321,12 @@ namespace Kill.UI.Pages
|
|||||||
Transform parent = componentParent != null ? componentParent : transform;
|
Transform parent = componentParent != null ? componentParent : transform;
|
||||||
_startTimeSelectionInstance = Instantiate(timeSelectionPrefab, parent);
|
_startTimeSelectionInstance = Instantiate(timeSelectionPrefab, parent);
|
||||||
_startTimeSelectionInstance.gameObject.SetActive(false);
|
_startTimeSelectionInstance.gameObject.SetActive(false);
|
||||||
|
UIManager.Instance.RegisterBackAction(() =>
|
||||||
|
{
|
||||||
|
_startTimeSelectionInstance.OnCancelClick();
|
||||||
|
UIManager.Instance.RegisterBackAction(OnBackButtonClick);
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return _startTimeSelectionInstance;
|
return _startTimeSelectionInstance;
|
||||||
}
|
}
|
||||||
@ -328,7 +341,7 @@ namespace Kill.UI.Pages
|
|||||||
{
|
{
|
||||||
page.gameObject.SetActive(true);
|
page.gameObject.SetActive(true);
|
||||||
page.Init(_startHour, _startMinute, OnStartTimeSelected);
|
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;
|
Transform parent = componentParent != null ? componentParent : transform;
|
||||||
_endTimeSelectionInstance = Instantiate(timeSelectionPrefab, parent);
|
_endTimeSelectionInstance = Instantiate(timeSelectionPrefab, parent);
|
||||||
_endTimeSelectionInstance.gameObject.SetActive(false);
|
_endTimeSelectionInstance.gameObject.SetActive(false);
|
||||||
|
UIManager.Instance.RegisterBackAction(() =>
|
||||||
|
{
|
||||||
|
_endTimeSelectionInstance.OnCancelClick();
|
||||||
|
UIManager.Instance.RegisterBackAction(OnBackButtonClick);
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return _endTimeSelectionInstance;
|
return _endTimeSelectionInstance;
|
||||||
}
|
}
|
||||||
@ -366,7 +385,7 @@ namespace Kill.UI.Pages
|
|||||||
{
|
{
|
||||||
page.gameObject.SetActive(true);
|
page.gameObject.SetActive(true);
|
||||||
page.Init(_endHour, _endMinute, OnEndTimeSelected);
|
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;
|
Transform parent = componentParent != null ? componentParent : transform;
|
||||||
_repeatSelectionInstance = Instantiate(repeatSelectionPrefab, parent);
|
_repeatSelectionInstance = Instantiate(repeatSelectionPrefab, parent);
|
||||||
_repeatSelectionInstance.gameObject.SetActive(false);
|
_repeatSelectionInstance.gameObject.SetActive(false);
|
||||||
|
UIManager.Instance.RegisterBackAction(() =>
|
||||||
|
{
|
||||||
|
Destroy(_repeatSelectionInstance.gameObject);
|
||||||
|
UIManager.Instance.RegisterBackAction(OnBackButtonClick);
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return _repeatSelectionInstance;
|
return _repeatSelectionInstance;
|
||||||
}
|
}
|
||||||
@ -477,6 +502,7 @@ namespace Kill.UI.Pages
|
|||||||
{
|
{
|
||||||
Debug.Log("[ScheduleEditPage] 返回");
|
Debug.Log("[ScheduleEditPage] 返回");
|
||||||
ClosePage();
|
ClosePage();
|
||||||
|
UIManager.Instance.RegisterBackAction(lastback);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user