2

그래서보기 컨트롤러에 연결된 탐색 컨트롤러가 있습니다. 그것은 분명히 디폴트 네비게이션 바를 제공합니다. 그 아래에는 두 개의 버튼이있는 다른 탐색 모음이 있습니다. 코드에서 UISearchController가 탐색 모음에 제공하는 검색 막대를 수동으로 추가하고 있습니다. 그 아래에는 다른 필터보기 (사용자 정의)가 있고 UITableView가 있습니다. 모든 것이 작동하는 것처럼 보입니다. 그러나 검색을 클릭하고 입력을 시작하면 결과보기는 두 번째 탐색 모음과 검색 막대를 덮어 쓸모없는 것으로 만듭니다. self.searchController.hidesNavigationBarDuringPresentation = NO로 놀아 보았습니다. 그러나 그것은 단지 주된 탐색 바를 숨긴다. 훨씬 더 화나게하는 부분은 뷰 컨트롤러가 실제로 두 번째 탐색 바를위한 공간을 남겨 놓은 결과이지만, 단지 뒤에 숨어 있습니다. 디버그 뷰 heirachy 메뉴에서도이를 볼 수 있습니다. 여기UISearchController에서 내비게이션 막대를 계속 표시하려면 어떻게해야합니까?

CUSearchResultsTableViewController *results = [self.storyboard instantiateViewControllerWithIdentifier:@"searchResults"]; 
self.searchController = [[UISearchController alloc] initWithSearchResultsController:results]; 
self.searchController.searchResultsUpdater = self; 

self.searchBarNavItem.titleView = self.searchController.searchBar; 
self.searchController.hidesNavigationBarDuringPresentation = NO; 
self.searchController.obscuresBackgroundDuringPresentation = NO; 

self.searchController.dimsBackgroundDuringPresentation = NO; 
self.definesPresentationContext = YES; 
self.searchController.delegate = self; 
self.searchController.searchBar.delegate = self; 
+0

이 문제를 해결하는 방법을 찾아 냈습니까? – Ramis

답변

1

당신이 그것을 할 수있는 방법입니다 : 여기에 내가 검색 컨트롤러에 사용하고 코드입니다

목표 - C

[self.navigationItem setHidesSearchBarWhenScrolling:NO]; 

스위프트

self.navigationItem.hidesSearchBarWhenScrolling = false;