2012-01-19 1 views
2

뷰 기반 응용 프로그램을 4 개 만들었습니다. 탐색 컨트롤러를 사용하여보기를 변경합니다. 내 세 번째보기에는 하나의 버튼이 있습니다. 그 버튼을 클릭하면 앱이 첫 번째보기로 돌아옵니다 (2 개의보기 뒤로).이동 방법 내비게이션 기반 응용 프로그램에서 다시 2 회보기

나는이 작동하지 않습니다

[self.navigationController popViewControllerAnimated:YES]; 
[self.navigationController popViewControllerAnimated:YES]; 

을 사용했다. 이전 페이지로 이동합니다.

문서 :

팝 루트 뷰 컨트롤러를 제외한 스택의 모든 뷰 컨트롤러가 업데이트

답변

4

이 밖으로 시도하고 사양

-(void)goToMainCategoryView; 
{ 
id object = nil; 

for (UIViewController *viewControl in self.navigationController.viewControllers) 
{ 
    if(viewControl.view.tag == 0) 
    { 
     object = viewControl; 
    } 
} 
[self.navigationController popToViewController:object animated:YES]; 
} 
+0

감사합니다. 약간 수정 한 후에 작동합니다. – umakanta

+0

@umakanta : 내 대답이 도움이된다면, 내 anwer를 받아들이거나 upvote하십시오. – Hiren

3

사용

popToRootViewControllerAnimated: 

는 상위 뷰 컨트롤러에 다시 모든 방법을 이동합니다 디스플레이. 특정 뷰 컨트롤러로 돌아가려면

- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated 

또는

popToViewController:animated: 

, 당신이 가고 싶은 뷰 컨트롤러를 제공합니다.

문서 : 지정된 뷰 컨트롤러 탐색 스택의 맨 위에까지

아빠는 컨트롤러를 볼 수 있습니다.

- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated 

매개 변수

의 ViewController 당신은 스택의 상단에있을하려는 뷰 컨트롤러.

+0

죄송합니다, 제가 질문을 업데이트했습니다. 대답하십시오 ..... – umakanta

4

사용하는 것 인덱스로의 UIViewController를 선택하는 또 다른 쉬운 루트에 따라 변경 :

NSArray *viewsArray = [self.navigationController viewControllers]; 
UIViewController *chosenView = [viewsArray objectAtIndex:1]; 
[self.navigationController popToViewController:chosenView animated:YES]; 

chosenView 다음에서 두 번째보기를 할 것입니다 네비게이션 스택 (위치 1). 대형 스택이 있고 특정보기로 이동하려는 경우 빠른 1.2 : 엑스 코드에서

12
for (UIViewController *controller in self.navigationController.viewControllers) 
{ 
    if ([controller isKindOfClass:[NeededViewController class]]) 
    { 
     [self.navigationController popToViewController:controller 
               animated:YES]; 
     break; 
    } 
} 
+0

Perfact ans 정말로 –

+0

thnx @KetanPatel –

+0

얼마나 달콤합니다. 완벽하게 작동합니다. – nithinreddy

0

같은 일이 : 6.4

for controller: UIViewController in self.navigationController?.viewControllers as! [UIViewController] { 
     if controller.isKindOfClass(YourViewController) { 
      self.navigationController!.popToViewController(controller, animated: true) 
     } 
    } 
관련 문제