void CANavigationController::pushViewControllerFinish() { m_pContainer->setFrame(CCRect(0, m_pContainer->getFrame().origin.y, 0, 0)); CAViewController* viewController = m_pViewControllers.back(); if (viewController->getNavigationBarItem() == NULL && viewController->getTitle().compare("") != 0) { viewController->setNavigationBarItem(CANavigationBarItem::create(viewController->getTitle())); } m_pNavigationBar->pushItem(viewController->getNavigationBarItem()); CAViewController* lastViewController = m_pViewControllers.at(m_pViewControllers.size() - 2); lastViewController->getView()->removeFromSuperview(); }
void CANavigationController::pushViewControllerFinish() { CAViewController* viewController = m_pViewControllers.back(); if (viewController->getNavigationBarItem() == NULL && viewController->getTitle().compare("") != 0) { viewController->setNavigationBarItem(CANavigationBarItem::create(viewController->getTitle())); } m_pNavigationBar->pushItem(viewController->getNavigationBarItem()); viewController->getView()->setFrameOrigin(CCPointZero); CAViewController* lastViewController = m_pViewControllers.at(m_pViewControllers.size() - 2); lastViewController->getView()->setFrameOrigin(CCPointZero); lastViewController->getView()->setVisible(false); lastViewController->viewDidDisappear(); }
void CANavigationController::replaceViewControllerFinish() { CAViewController* lastViewController = m_pViewControllers.back(); lastViewController->retain()->autorelease(); m_pViewControllers.popBack(); m_pNavigationBar->popItem(); lastViewController->viewDidDisappear(); lastViewController->removeViewFromSuperview(); CAViewController* viewController = m_pViewControllers.back(); viewController->getView()->setFrameOrigin(CCPointZero); if (viewController->getNavigationBarItem() == NULL && viewController->getTitle().compare("") != 0) { viewController->setNavigationBarItem(CANavigationBarItem::create(viewController->getTitle())); } m_pNavigationBar->pushItem(viewController->getNavigationBarItem()); }
void CANavigationController::replaceViewControllerFinish() { m_pContainer->setFrame(CCRect(0, m_pContainer->getFrame().origin.y, 0, 0)); CAViewController* lastViewController = m_pViewControllers.back(); m_pViewControllers.pop_back(); m_pNavigationBar->popItem(); lastViewController->removeViewFromSuperview(); lastViewController->autorelease(); CAViewController* viewController = m_pViewControllers.back(); if (viewController->getNavigationBarItem() == NULL && viewController->getTitle().compare("") != 0) { viewController->setNavigationBarItem(CANavigationBarItem::create(viewController->getTitle())); } m_pNavigationBar->pushItem(viewController->getNavigationBarItem()); }
void CANavigationController::layoutNewContainer() { CAViewController* viewController = m_pViewControllers.back(); DRect navigation_bar_rect = DRectZero; navigation_bar_rect.size = m_tNavigationBarSize; DRect container_rect = this->getView()->getBounds(); if (m_bNavigationBarHidden || viewController->getNavigationBarItem()->isNagigationBarHidden()) { navigation_bar_rect.origin = this->getNavigationBarTakeBackPoint(); } else { container_rect.size.height -= m_tNavigationBarSize.height; navigation_bar_rect.origin = this->getNavigationBarOpenPoint(); container_rect.origin.y = m_tNavigationBarSize.height; } CAView* container = m_pContainers.back(); container->setFrame(this->getView()->getBounds()); CANavigationBar* navigationBar = m_pNavigationBars.back(); navigationBar->setFrame(navigation_bar_rect); CAView* secondContainer = m_pSecondContainers.back(); secondContainer->setFrame(container_rect); viewController->addViewFromSuperview(secondContainer); if (m_pViewControllers.size() > 1) { viewController->viewDidAppear(); } }