2012-05-30 2 views
8

네비게이션 컨트롤러를 두 번 열어 볼 수 있습니까? 나는이 탐색 구조가 있습니다UINavigationController를 두 번 튀길 수 있습니까?

보기를 한 ---->보기 두 ----->보기 내가 달성하고 싶은 무엇 세

가 그보기 세에 행의 탭으로, 직접 View One로 돌아가십시오. 나는 프로토콜 위임을 통해 3에서 2로했는데 대리자를보기로 설정하면 작동하지 않고 두 개의 연속 된 위임 프로토콜을 설정하여 탐색 컨트롤러를 팝업하면 중첩 된 탐색 컨트롤러 활동 (또는 이와 유사한 항목)이 표시됩니다.).

도움을 주시면 감사하겠습니다. 미리 감사드립니다!

답변

32

몇 팝업 옵션

- (UIViewController *)popViewControllerAnimated:(BOOL)animated 
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated 
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated 
  • 첫 번째는 상단 컨트롤러를 팝업있다.
  • 두 번째는 전체 스택을 꺼내 루트로 가져올 수 있습니다.
  • 세 번째는 참조가있는 모든 viewController로 이동할 수있게합니다. 당신은 self.navigationController.viewControllers와의 ViewController를 얻을 다음은
+1

감사합니다. 매력 작품처럼! – Marcal

4

'자기'를 팝업 할 특정의 ViewController를 얻을 수있는 배열로 작업 할 수 있습니다 첫 번째 팝업 이후에 출시 될 것으로 보인다

UINavigationController *navigationController = self.navigationController; 
[navigationController popViewControllerAnimated:NO]; 
[navigationController popViewControllerAnimated:YES]; 
10

다음 코드를 사용하여 . 요구 사항에 따라 -3 대신 임의의 숫자를 사용하여 팝업 할 수 있습니다.

코드 :

ViewController *View = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count-3]; 
    [self.navigationController popToViewController:View animated:YES]; 

스위프트 3.0 *

하자 제어기 self.navigationController .viewControllers = [(self.navigationController .viewControllers.count?)! - 3]

 self.navigationController?.popToViewController(controller!, animated: true) 
+2

더 나은 대답. ! – Xeieshan

8

[self.navigationController popToViewController:[[self.navigationController viewControllers] objectAtIndex:1] animated:YES]; 

는 희망이 도움이 시도 할 수 있습니다!

관련 문제