2011-03-24 6 views
0

this example처럼 중개 클래스를 사용하여 한 ViewController에서 다른 ViewController로 전환 할 수 있다는 것을 알고 있습니다.다른 ViewController에서 새 ViewController로 전환 하시겠습니까?

내가 알고 싶은 것은 다른보기 컨트롤러에서 다른보기 컨트롤러로 직접 전환 할 수있는 방법이 있습니까? 마찬가지로, 현재 뷰 컨트롤러에서 뷰를로드하고, 즉시 뷰 컨트롤러에서 뷰를 릴리즈할까요?

감사합니다.

+0

수행의 목적은 그게 무슨 될 것 ? 당신의 최종 목표는 무엇입니까? – drewag

답변

0

내가보기에 당신은 1 개의 뷰 컨트롤러를 유지하는 방법이라고 생각합니다.

새로운보기 컨트롤러를 추가하고 상위보기 컨트롤러에 추가 한 다음 현재보기 컨트롤러를 제거 할 수 있습니다.

0

UINavigationController 사용은 편도 : [navigationController pushViewController:animated:]입니다. 다른 공식적인 방법은 다음 뷰를 모달 뷰로 표시하는 것입니다 : [someVC presentModalViewController:],하지만 이것은 iOS 6 이후 사용되지 않습니다.

iOS 6 방식은 - (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion입니다.

0
var currentVC:UIViewController! 
let firstVC = yourViewcontroller1() 
let secondVC = yourViewcontroller2() 
func setupChildViewControllers(){ 
    self.addChildViewController(firstVC) 
    self.addChildViewController(secondVC) 
    self.view.addSubview(firstVC.view) 
    self.currentVC = firstVC 
} 

func replaceController(oldVC:UIViewController,newVC:UIViewController){ 
    self.addChildViewController(newVC) 

    self.transitionFromViewController(oldVC, toViewController: newVC, duration: 0, options: UIViewAnimationOptions.TransitionCrossDissolve, animations: nil) { (finished) -> Void in 
     if finished { 
      newVC.didMoveToParentViewController(self) 
      oldVC.willMoveToParentViewController(nil) 
      oldVC.removeFromParentViewController() 
      self.currentVC = newVC 
     }else{ 
      self.currentVC = oldVC 
     } 
    } 
} 
관련 문제