3

現在、UISearchBar と UISearchDisplayController を次のように実装しています。

- (void) viewDidLoad {

 videoList = [[NSMutableArray alloc]init];

 //Add the search bar
 aSearchBar = [[UISearchBar alloc] initWithFrame:CGRectZero];
    [aSearchBar sizeToFit];
 aSearchBar.delegate = self;
    aSearchBar.placeholder = @"Search YouTube...";

    self.tableView.tableHeaderView = aSearchBar;

    searchDC = [[UISearchDisplayController alloc] initWithSearchBar:aSearchBar contentsController:self];

    [self performSelector:@selector(setSearchDisplayController:) withObject:searchDC];

    searchDC.delegate = self;
    searchDC.searchResultsDataSource = self.tableView.dataSource;
    searchDC.searchResultsDelegate = self.tableView.delegate;

    [aSearchBar release];
    [searchDC release];

}

ユーザーが何かを入力して検索すると、バックグラウンドで tableView の上に tableView が表示されます。

この「searchResults tableView」を非表示にする方法はありますか? (バックグラウンドテーブルにデータを保持させたいだけです..現在はそうしています)。

つまり、プロパティはありますか?たとえば、searchDisplayController.tableView.visible=NO などですか?

4

3 に答える 3

12

ただし、これは検索インターフェイス (検索バーと「キャンセル」ボタン) を閉じません。次のコードはそれを行います:

    [self.searchDisplayController setActive:NO animated:YES];
于 2012-11-29T08:22:26.283 に答える
2
searchDC.searchResultsTableView.hidden=YES;
于 2010-09-06T02:19:30.380 に答える
0

[[UISearchBar alloc] initWithFrame:CGRectZero];

CGRectZeroを使用しないでください self.searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, self.table.frame.size.width, 44)];

それを試してみてください

于 2014-10-27T12:17:39.760 に答える