2012-06-25 6 views
0

작동, 그것의 s 번째는 추천했습니다 :은 UINavigationController의 내비게이션 바의 가시성이 내 응용 프로그램에서 일부 네비게이션 컨트롤러를 추가하기 위해 노력하고있어

:

내 인덱스 페이지 뷰 컨트롤러에서

, 나는이 같은 탐색 컨트롤러를 초기화하려고

-(void)viewDidLoad{ 
    ... 
    //allocate a navigation controller. 
    myNavigationController = [[UINavigationController alloc]init]; 
    myNavigationController.delegate = self; 
    myNavigationController.navigationBar.hidden = YES; 
    [self.view addSubview:myNavigationController.view]; 

    [myNavigationController pushViewController:tabViewController animated:YES]; 
    [self presentModalViewController:myNavigationController animated:YES]; 
} 

여기에서 색인 페이지보기 컨트롤러는 내 앱의 루트보기 컨트롤러입니다. 여기서는 일반적인 UIViewController입니다.

[myNavigationController pushViewController:tabViewController animated:YES]; 

I 탐색 제어기에 가압 한 여기 tabViewController는 탭 버튼을 길게하는 용기도 사용한다, 또한 탭의 전환을위한 탐색 컨트롤러 보유 맞춤 tabview 컨트롤러이다.

여기

문제는 : 내가 탐색 모음 보이지 않게했습니다 이후 내 사용자 정의보기 컨트롤러 쇼,하지만 난 다른보기로 전환하고자 할 때 때

myNavigationController.navigationBar.hidden = YES; 

, 그것은 표시되지 않습니다 컨트롤러와 내비게이션 막대를 표시하려면 다음을 수행하십시오.

myNavigationController.navigationBar.hidden = NO; 
MyViewController *toSwitchNC = [[MyViewController alloc]init]; 
[myNavigationController pushViewController:toSwitchNC animated:YES]; 

탐색 막대가 더 이상 표시되지 않습니다. 또한 넣어 시도했다 :

MyViewController의 viewDidLoad에, ViewDidAppear에서 또는 네비게이션 컨트롤러의 대리자 메서드에서
self.navigationController.navigationBar.hidden = NO 

,이 둘 탐색 모음을 표시하지 않았다.

그래서 무엇이 잘못 되었나요? 왜 처음에는 탐색 바를 보이지 않게 초기화했는데 숨겨진 플래그를 false로 설정해도 다시 표시되지 않습니다.

+0

안녕하세요, 맞춤 탭보기에서 내비게이션 컨트롤러를 없애려고하는데, 내비게이션 표시 설정이 작동하는 것 같습니다. 그러나 실제로는 어떻게됩니까? 내 인덱스보기 컨트롤러의 내비게이션 컨트롤러는 내비게이션 컨트롤러가 포함 된 내 사용자 정의 탭보기를 푸시합니다.이 방법은 피하거나 제안 할 필요가 없습니다. – David

답변

0

그래, 내 인덱스 페이지보기 컨트롤러에서 탐색 컨트롤러 컨테이너를 제거하여이 문제를 해결했습니다. 사과는 개발자 문서에서 네비게이션 뷰 컨트롤러가 뷰 스택에 가능한 한 루트로 있어야한다고 공식적으로 언급했기 때문에 이것은 어리석은 질문 일 수 있습니다. IOS가 닫힌 시스템이기 때문에 WTH가 애플을 제외하고 아래에 있다는 것을 알고있는 사람.

관련 문제