/// <summary> /// Goes back to a specified page if possible /// </summary> /// <param name="backPage">Page to go back to</param> public virtual void Back(IMainMenuPage backPage) { int count = mPageStack.Count; if (count == 0) { SafeBack(backPage); return; } for (int i = count - 1; i >= 0; i--) { IMainMenuPage currentPage = mPageStack.Pop(); if (currentPage == backPage) { SafeBack(backPage); return; } } SafeBack(backPage); }
/// <summary> /// Goes back to a certain page /// </summary> /// <param name="backPage"></param> protected void SafeBack(IMainMenuPage backPage) { DeactivateCurrentPage(); ActivateCurrentPage(backPage); }
protected virtual void ChangePage(IMainMenuPage newPage) { DeactivateCurrentPage(); ActivateCurrentPage(newPage); }
/// <summary> /// Activate a new page and place it on the navigation stack /// </summary> /// <param name="newPage">The page to be activated</param> protected void ActivateCurrentPage(IMainMenuPage newPage) { mCurrentPage = newPage; mCurrentPage.Show(); mPageStack.Push(mCurrentPage); }
/// <summary> /// Activate specified page /// </summary> /// <param name="page">page to activate</param> protected void ActivatePage(IMainMenuPage page) { m_CurrentPage = page; m_CurrentPage.Show(); m_PageStack.Push(m_CurrentPage); }