2010-11-29 2 views
1

사용자가 계층 구조를 드릴 다운 할 수있는 탐색 기반 앱이 있습니다. 하위 계층의 일부는 단지 하나 개의 예를 들어 그들의 요소,탐색 계층 구조를 자동으로 드릴 다운 하시겠습니까?

TopLevel1----->Level2a 
TopLevel2 |->Level2b----->Level3a----->Level4a 
      |->Level2c  

대신 'Level3a가'난 그냥 Level4a에 Level2b에서 이동하려는 사용자 탭을을 가지고 있지만 너무 스택에 Level3a보기를 유지 사용자가 역 추적하면 표시됩니다. 각 레벨이로드되면

Simulate a Detail Disclosure Button press

것은, 나는 거기에 하나의 요소가 있는지 확인 :

나는 행 탭을 시뮬레이션하기 위해 여기에 몇 가지 코드를 발견했다. 그렇다면 행 탭을 시뮬레이트합니다. 이것은 모두 초기에 작동하고 최종 뷰가로드됩니다. 그러나 뷰 계층을 통해 다시 추적하기 시작할 때 문제가 발생합니다 (건너 뛴 뷰가로드되지 않은 것 같습니다).

나는 성취하려고하는 것이 상당히 간단하다고 생각하므로, 여기에있는 누군가가 올바른 방향으로 나를 가리킬 수 있기를 바랍니다.

답변

0

level3보기 컨트롤러에 대해 viewWillAppear 방법으로 [self.navigationController pushViewController:level4 animated:NO] 전화를 걸 수 있어야합니다. 이렇게하면 자동으로 level4를 level3 위에 올립니다.

일부 상황에서만 발생하는 경우 level3에이 동작이 발생할시기를 나타내는 속성을 포함 할 수 있습니다.

+0

덕분에, 코드 샘플입니다, 그러나 그것은 나에게 동일한 결과를 제공합니다. 실제로, animated : NO를 사용하면 매우 이상한 결과를 얻습니다. 애니메이션으로 변경하면 : 예, 나는 시뮬레이션 된 행 탭 코드를 사용하는 것과 같은 결과를 얻습니다. 나는 무슨 일이 일어나고 있는지 보려고 내 코드를 파고있다. – smacdonald

0

100 % 확신 할 수는 없지만 그렇게 할 것입니다.

당신은 할 수 직접 [self.navigationController pushViewController:level4a animated:NO]하고이 끝나면, viewControllers의 새로운 배열의 navigationController 타당성 (Level3a를 포함하는 배열)을 설정합니다. 여기

didSelectRowAtIndexPath:

[self.navigationController pushViewController:level4a animated:NO]; //Push the level 4 first 
NSMutableArray* mutableViewControllers = [self.navigationController.viewControllers mutableCopy]; 
[mutableViewController addObject:level3a atIndex:3]; //Add the level 3 manually 
self.navigationController.viewControllers = mutableViewControllers; 
[mutableViewControllers release]; 
관련 문제