2010-07-14 4 views
1

일부 계층 뷰가있는 탐색 컨트롤러를 구현하려고합니다. 일반 UIViewController를 사용하여 드릴 다운을위한 선택 사항을 표시하려면 탐색 모음을 사용하고 싶지 않습니다. 수준을 되 돌리는 고유 한 사용자 지정 단추가 필요합니다. 내가 좋아하는 예를 볼탐색 모음을 사용하지 않고 탐색 스택에서 컨트롤러를 튀는 방법

: 그 navigationController 모든 UIViewControllers의 속성 :

[[self navigationController] pushViewController:nextViewController animated:YES]; 

내 질문이 있습니까? 스택에있는보기에 관계없이 self.navigationController을 참조 할 수 있습니까? 임의의보기 인 경우 [self.navigationController popToRootViewController animated:YES];

현재 표시되는 각보기에는 상황에 따라 이전보기 또는 루트보기로 돌아가는 단추가 필요합니다. 각보기 컨트롤러에서 해당 단추를 만들고 스택의 어느보기로 돌아갈 것인지 제어하려고합니다. 나는 올바른 길을 가고 있는가?

답변

7

navigationController는 모든 UIViewControllers의 속성입니까?

예.

스택에있는보기에 관계없이 self.navigationController를 참조 할 수 있습니까? 거기에 navigationController를 호출 할 때 UINavigationController의 스택에

모든 UIViewControllerUINavigationController 객체를 반환합니다. 나는 임의의 뷰에있어 경우

, 나는 [self.navigationController popToRootViewControllerAnimated:YES];

예 같은 것을 포함하는 버튼 액션을 할 수 있습니다. popToRootViewControllerAnimated:UINavigationController에 대한 루트 UIViewController으로 사용자를 데리고 [self.navigationController popViewControllerAnimated:YES];을 사용하면 상단 UIViewController에서 벗어날 수 있습니다. 이 마지막 것은 BackUIBarButtonItem을 두드리는 것과 동일합니다.

올바른 경로에 있습니까?

예 :

+0

감사합니다! 나는 아직도 학습 곡선의 가파른 부분에 있지만 각 단계는 꽤 보람 있습니다. 몇 달 전에이 네비게이션 컨트롤러를 보면서 나는 완전히 횡설수설 했었고 지금은 (상당히) 분명하다. 스택 오버플로가 없었다면 오래 전에 포기했을 것입니다. 니스, 명확한 대답! – Steve

+0

믿거 나 말거나, 불과 4 개월 전만해도 C, Objective-C, Cocoa Touch 또는 iPhone 앱 개발에 대해 처음 알지 못했습니다. 책, 처음부터 응용 프로그램을 작성하십시오. 스택 오버플로에 대해 알고 있기 전에 다른 사람의 질문에 답변하십시오.) –

+0

저는 iPhone 3 개발 시작을 통해 게임을 다음 번에 읽는 중입니다. 잘 작동합니다. 새 컨트롤러를 스택에 밀어 넣고 다시 팝핑하여 탐색 모음을 제거 할 수 있습니다.두 가지 새로운 문제는 다음과 같습니다. 새 컨트롤러를 켤 때 즉시 모달 뷰를 가져 와서 선택할 수 있습니다. 모달이 표시되기 전에 기본 뷰가 표시 될 때까지 기다리는 방법은 무엇입니까? 모달이 왼쪽 위로 움직입니다). 그런 다음 어떻게 그 선택 정보를 모달에서 기본 컨트롤러로 되돌려 놓을 수 있습니까? – Steve

관련 문제