コード例 #1
0
 public NavigationInfo(string viewTypeName, PageViewBase pageViewBase,
                       NavigationTriggerState navigationTriggerState)
 {
     ViewTypeName           = viewTypeName;
     PageViewBase           = pageViewBase;
     NavigationTriggerState = navigationTriggerState;
 }
コード例 #2
0
 /// <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);
 }
コード例 #3
0
        /// <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();
            }
        }
コード例 #4
0
 public NavigationInfo()
 {
     NavigationTriggerState = NavigationTriggerState.CloseAndOpen;
 }