public NavigationInfo(string viewTypeName, PageViewBase pageViewBase, NavigationTriggerState navigationTriggerState) { ViewTypeName = viewTypeName; PageViewBase = pageViewBase; NavigationTriggerState = navigationTriggerState; }
/// <summary> /// 페이지 오픈. /// </summary> public static async UniTask OpenPage(NavigationViewType navigationViewType, NavigationTriggerState triggerState = NavigationTriggerState.CloseAndOpen, object pushValue = null, UnityAction actionOnFirst = null) { await NavigationManager.Instance.OpenPage(navigationViewType.ToString(), triggerState, pushValue, actionOnFirst); }
/// <summary> /// open page. /// </summary> public async UniTask OpenPage(string viewString, NavigationTriggerState triggerState, object pushValue = null, UnityAction actionOnFirst = null) { await ShowTransitionViewAsync(); var page = await CreatePage(viewString); if (triggerState == NavigationTriggerState.First) { _pageInfoStack.Foreach(x => x.PageViewBase.Pop().Forget()); _pageInfoStack.Clear(); _pageInfoStack.Push(new NavigationInfo(viewString, page, triggerState)); InitPage(); await page.Push(pushValue); _actionOnFirst = actionOnFirst; } else { var lastPage = _pageInfoStack.Peek(); _pageInfoStack.Push(new NavigationInfo(viewString, page, triggerState)); InitPage(); await page.Push(pushValue); await lastPage.PageViewBase.ToBackground(); lastPage.PageViewBase.PoolingObject(); } PageCount.Value = _pageInfoStack.Count; LastPageType.Value = (NavigationViewState)Enum.Parse(typeof(NavigationViewState), _pageInfoStack.First().ViewTypeName); await HideTransitionViewAsync(); void InitPage() { var rectT = page.GetComponent <RectTransform> (); rectT.SetParent(_navigationComponent.PageParents); rectT.SetInstantiateTransform(); } }
public NavigationInfo() { NavigationTriggerState = NavigationTriggerState.CloseAndOpen; }