2016-06-18 2 views
3

UITableView와 함께 UISearchController를 사용하고 기본보기 컨트롤러에서 동일한 테이블보기를 사용하여 검색 결과를 표시합니다 (별도의 검색 결과 컨트롤러를 searchController = UISearchController(searchResultsController: nil)으로 지정하지 않음).UISearchController with nil searchResultsController

그러나 searchResultsController를 nil로 설정하더라도 검색이 활성화되어있을 때 비어있는 투명 _UISearchControllerView이 여전히 내 View Controller 위에 표시됩니다.

이 문제를 방지하고 내 View Controller를 검색 컨트롤러의 상단에 두는 방법이 있습니까?

감사합니다.

답변

1

당신 안녕하세요 사람들이 시도하시기 바랍니다 거짓

searchController.dimsBackgroundDuringPresentation = false 
+0

내가 알고있는 것처럼 시각적 인 속성이므로 원하는대로 작동하지 않습니다. 당신은 그것을 시도하고보기 디버거에서 보았는가, 어쩌면 나는 무언가를 놓치고 있는가? – Onur

-1

에 검색 컨트롤러의 dimsBackgroundDuringPresentation 속성을 설정하여 그것을 제거 할 수 있습니다.

-(void) searchBar: (UISearchBar *) searchBar textDidChange:(NSString *)  searchText{ 
NSMutableArray *sortedData = [[NSMutableArray alloc] init]; 

    if ([searchText isEqualToString:@""]) { 
     _localArray = _mainArray; // you must take a local array 
    } 
    else{ 
     //show your sorted data 
    } 

} 

- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar{ 
searchBar.text = nil; 
[searchBar resignFirstResponder]; 
} 
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{ 
[searchBar resignFirstResponder]; 
[self.view endEditing:YES]; 
} 
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{ 
[searchBar resignFirstResponder]; 
[self.view endEditing:YES]; 
} 
0

기본적으로 UISearchController은 표시되는보기를 희미하게합니다. 이것은 searchResultsController에 대해 다른보기 컨트롤러를 사용하는 경우에 유용합니다. 코드에서 결과를 표시하도록 현재보기를 설정 했으므로보기를 어둡게하고 싶지는 않습니다.

searchController.dimsBackgroundDuringPresentation = false