2

UISearchBar「 nib」ファイルで定義したテーブル ビューにを追加しようとしています。IB に検索バーと検索ディスプレイ コントローラーを追加し、検索バー アウトレットをリンクし、これをビュー コントローラーの '.h' ファイルに追加しました。

@interface SearchListViewController : UIViewController <UITableViewDataSource, UITableViewDelegate, UISearchBarDelegate, UISearchDisplayDelegate>

また、次のデリゲート メソッドを実装しました。

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString 
{
   [self filterContentForSearchText:searchString scope:
   [[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]];
   return YES;
}

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption 
{
   [self filterContentForSearchText:self.searchDisplayController.searchBar.text scope:
   [[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:searchOption]];
   return YES;
}

メソッドが呼び出されていることがわかりましたが、shouldReloadTableForSearchString:メソッドが呼び出されていshouldReloadTableForSearchScope:ないため、テーブル ビュー データが検索結果とともに再読み込みされません...何が欠けているのでしょうか?

前もって感謝します

4

1 に答える 1

4

デリゲートを自分自身に設定する必要があります。

searchController.delegate = self;
searchController.searchResultsDataSource = self;
searchController.searchResultsDelegate = self;

UISearchDisplayController クラス リファレンス

于 2013-10-22T05:32:39.940 に答える