2014-01-29 2 views
0

현재 UISearchBar 및 SearchDisplayController를 기존 UITableViewController으로 드래그 한 Storyboard에서 UISearchDisplayController 빌드의 기본 구성을 사용 중입니다. TableViewController로 드래그 되었기 때문에 두 개의 테이블 (self.tableViewself.searchDisplayController.searchResultsTableView)이 있습니다.UISearchDisplayController 구현에 대해 하나의 테이블보기 만 표시하는 방법

사용자가이보기를 열고 사용자 검색을 표시 할 때만 tableView을 기본 테이블로 표시하고 싶습니다. 내가 달성하고자하는 것이 무엇

enter image description here

는 "계란을"단어를 입력하는 등, RecipeBookVC의 tableView없이 행을 제거 것이다 "그림의 (a RW tutorial에서 촬영) 달걀 "이므로 resultsTableView에서 볼 필요없이 self.tableview에 표시된 결과가 그대로 남습니다. (또한 탐색 표시 줄을 숨기지 않고 검색하면 "검색"이 아닌 "필터"처럼 느껴질 수 있습니다.)

고마워요!

답변

1

검색 디스플레이 컨트롤러가 실제로 필요하다고 생각하지 않습니다. 테이블 뷰 (아마도 UITableViewController)와 UISearchBar 만 있으면됩니다. 테이블 뷰는 데이터가 포함 된 배열의 내용을 표시합니다. 검색 쿼리가 변경 될 때마다 그에 따라 해당 배열을 업데이트하고 tableView를 다시로드하여 업데이트 된 배열 데이터를 표시합니다. 이렇게하면 원하는 필터링 느낌을 얻을 수 있습니다. 당신은 배열을 필터링 한 후

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

을 사용하십시오 당신이

- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 

를 사용하려는 사용자 유형으로 쿼리를 얻을 수있는 테이블보기에서 데이터를 표시하려면 즉 데이터 소스 인 경우 [self.tableView reloadData]이라고 부릅니다.

나는 구현 한 방법으로 a sample project을 채찍질했다. 그래서 나는 그것이 무엇을 의미하는지 조금 더 분명하게했다. 희망이 나중에 작동합니다.

+0

이것은 정말 환상적입니다. 이걸 위닝하고 어떻게하는지 보여 주셔서 감사합니다! 도와 주셔서 정말 고맙습니다. – daspianist

+0

안녕하세요. @kevin, 저는이 프로젝트가 계속해서 도움이된다고 말하고 싶습니다. 잘 했어. – daspianist

+0

@daspianist 그것을 듣고 다행! :) – kevin