2012-07-07 8 views
0

어떻게 작동하는지 잘 모르겠습니다. 첫 번째 탭은 UiNavigationController이고 rootViewController에는 UISearchDisplayController와 UISearchBar가있는 UITabBarController가 있습니다. 나는 rootViewController를 UINavigationControllerDelegate로 설정했다.검색 후 UINavigationBar 숨기기가 표시되지 않습니다.

나는이 작업을 수행 :

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { 
    [self.navigationController.navigationBar setHidden:YES]; 
} 

그래서 내 내비게이션 바는 표시되지 않습니다. 그 부분은 작동합니다. 검색을하고 Enter 키를 누르면 내비게이션 막대가 나타나서 그 아래에 내 검색 막대를 푸시합니다. 여기서 무슨 일이 일어나고있는거야? 내비게이션 바가 보이지 않게해야 할 곳이 있습니까?

저는 이전에 내 View Controller를 모달로 대신 제시 할 수 있다는 것을 알고 있습니다. 그러나 navBar 문제 이외의 다른 방식으로 모달로 표시 할 이유는 없습니다. 일단 검색이 이루어지고 사용자가 항목의 더 자세한보기로 갈 무언가를 선택하면, 거기에 navigationController를 생성하는 데 사용됩니다. 내가 말했듯이 루트에서 하나의 UINavigationController가 있다면 더 잘 흐르게 될 것 같았습니다. 모덜리스트로 상세한 목록을 표시 할 이유가 없습니다. 감사!

답변

0

시도했다

[self.navigationController setNavigationBarHidden:YES animated:NO]; 
+0

[self.navigationController.navigationBar setHidden:YES]; 

교체. 왜 작동합니까? 나는 그 차이를 보는데 어려움을 겪고있다. – Crystal

+0

네비게이션 컨트롤러가 네비게이션 바를 담당합니다. 첫 번째 경우에는 사용자가 직접 숨기고 있지만 컨트롤러는이를 알지 못하므로 나중에 숨기기를 취소 할 수 있습니다. 그러나 두 번째 경우에는 컨트롤러에 숨김을 지정하라는 메시지를 표시하므로 숨김 상태로 유지됩니다. – Simon

관련 문제