2013-07-17 6 views
0

이 Ios 애플리케이션을 처음 사용합니다. 나는 9 시야와 약간의 시간 사용자가 일부보기를 건너 뛸 수 있습니다. 예. 사용자는 3 번째보기에서 5 번째보기로 이동할 수 있습니다. 이전보기 (건너 뛴보기 포함)로 돌아가고 싶습니다. 자세히 설명하겠습니다.모든보기에서 특정보기로 돌아 가기

제 3의보기에서 5 번째보기로 건너 뛰었습니다. 5 번째보기에서 뒤로 버튼이 있습니다.이 버튼을 클릭하면 4 번째보기로 돌아갈 필요가 있습니다.

현재 내가

HealtghCareResponsibilityViewController *objPri = [viewsArray objectAtIndex:4]; 



[objPri passArrayFromEndDisclosure:self.arrayToPass]; 


[self.navigationController popToViewController:objPri animated:YES]; 

을 사용했다하지만 난 4보기 때문에 4 인덱스가 objectAtIndex에없는, 건너 뛴 것을 알고있다.

하지만 4 번째 색인으로 돌아갈 필요가 있습니다. 어떤 방법이 있습니까?

답변

0

당신은 할 수 있습니다 :

if ([[self.navigationController.viewControllers containsObject:objPri]) { 
    [self.navigationController popToViewController:objPri animated:YES]; 
} else { 
    [self.navigationController pushViewController:objPri animated:YES]; 
} 

을 이전에 당신이 그것을 추가 할 경우 당신이 그것을 다시 가서 보였다 그래서 경우.


대체 :

뷰 컨트롤러를 교체은 그래서 당신은 팝업 수 있습니다

NSArray *viewControllers = @[ objPri, self.navigationController.topVviewController ]; 
self.navigationController.viewControllers = viewControllers]; 
[self.navigationController popViewControllerAnimated:YES]; 
+0

TKS, 내가 5 일보기에서 두 번째보기로 돌아가려면 가정) 제 2는 건너 뛴다). 그럼? 이것도 회답 해주세요 – user1878525

+0

정확히 같은 상황입니다. objPri 참조가 가리키는 객체를 변경하면됩니다. – Wain

+0

Tks, 작동 중입니다. 그러나 나는 특별한 방식의 disply를 사용했다. 다시보기는 화면이 뒤쪽으로 스크롤되는 방식이다. 그러나 코드를 사용하면 앞으로 나아갈 수 있습니다. 즉 5 번째보기에서 우리는 3 번째보기로 옮겼습니다. (5 번째는 뒤로 이동하고 3은 3 번째로 바뀌어야합니다.) 다시 말해서 답장을 부탁드립니다. – user1878525

1
for (UIViewController *controller in self.navigationController.viewControllers) 
     { 
      if ([controller isKindOfClass:[nameOfYourViewControllerYouWantToNavigate class]]) 
      { 
       [self.navigationController popToViewController:controller animated:YES]; 

       break; 
      } 
     }