private void SimpleOpenPage(Page page, string option) { RefreshCommon(currentPage); if (page.pageType == PageType.FULL_SCREEN) { //用回调来做吧 //ManagerController.Instance.cameraTool.sceneCamera.enabled = page.showScene; } //FreshTipAndBarState(page); if (page.isOpen) { page.Reopen(option); } else { page.Open(option); } if (!activePage.Contains(page)) { activePage.Add(page); } }
public void OpenPage(string pageName, string option) { Debug.Log("Open page " + pageName + " option " + option); if (currentPage != null && currentPage.name == pageName) { currentPage.Reopen(option); return; } Page pageToOp = GetPage(pageName); if (pageToOp == null) { Debug.LogError("Cannot find the page " + pageName); return; } if (currentPage != null) { if (pageToOp.pageType == PageType.COVER) { if (currentPage.pageType == PageType.FULL_SCREEN) { currentPage.OnCoverPageOpen(); string pao = currentPage.name + "?" + ((currentPage.saveToHistory) ? 1 : 0) + "?" + currentPage.GetOptString(); pageHostory.Add(pao); } else { currentPage.CorverdForceClose(); SimpleClosePage(currentPage); } } else { Page pageToClose; if (currentPage.pageType == PageType.COVER) { currentPage.CorverdForceClose(); SimpleClosePage(currentPage); string pn, options; GetClosestPage(false, out pn, out options); pageToClose = GetPage(pn); } else { pageToClose = currentPage; } if (pageToClose.saveToHistory) { string pao = pageToClose.name + "?" + 1 + "?" + pageToClose.GetOptString(); pageHostory.Add(pao); } pageToClose.OnForceClose(); SimpleClosePage(pageToClose); } //if (currentPage.pageType == PageType.FULL_SCREEN) //{ // string pao = currentPage.name + "?" + ((currentPage.saveToHistory) ? 1 : 0) + "?" + currentPage.GetOptString(); // pageHostory.Add(pao); // if (pageToOp.pageType == PageType.FULL_SCREEN) // { // currentPage.OnForceClose(); // SimpleClosePage(currentPage); // //for (int i = pageHostory.Count - 1; i >= 0; --i) // //{ // // string pn = pageHostory[i]; // // int indexQ = pn.IndexOf('?'); // // if (indexQ != -1) // // { // // pn = pn.Substring(0, indexQ); // // } // // if (pageDictonary.ContainsKey(pn)) // // { // // var pageToClose = pageDictonary[pn]; // // if (pageToClose.isOpen) // // { // // pageDictonary[pn].OnForceClose(); // // SimpleClosePage(pageDictonary[pn]); // // } // // if (pageToClose.pageType == PageType.FULL_SCREEN) // // { // // break; // // } // // } // // //else // // //{ // // // break; // // //} // //} // } // else // { // currentPage.OnCoverPageOpen(); // } //} //else //{ // SimpleClosePage(currentPage); //} } currentPage = pageToOp; SimpleOpenPage(pageToOp, option); }