1

メイン画面に検索バーがあります-ルートテーブルビューコントローラー。他の画面をブラウズして戻ってくると、検索バーが消えてしまうことがあります。これが私のコードです。

    searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 44.0)];
    searchBar.delegate = self;
    searchBar.tintColor = [UIColor blackColor]; 
    [searchBar sizeToFit];
     self.tableView.tableHeaderView = searchBar;

    searchDisplayController = [[UISearchDisplayController alloc]
                                  initWithSearchBar:searchBar contentsController:self];
    searchDisplayController.delegate = self;
    searchDisplayController.searchResultsDataSource = self;
    searchDisplayController.searchResultsDelegate = self;

私のコードに何か問題がありますか、それとも SDK 3.0 の癖の 1 つですか?

4

1 に答える 1

2

最近、この同じ問題に出くわし、検索バーが見えなくなったとき (つまり、テーブル ビューがスクロールされたとき) にのみ発生するように絞り込むことができました。原因についての情報を見つけることができませんでしたが、これを配置することで回避できました:

self.tableView.tableHeaderView = searchBar;

私のコントローラークラスのviewWillAppearまたはviewDidAppearイベントのいずれかで。あなたが投稿したコードは、コントローラー クラスのviewDidLoadメソッドからのものだと思いますか?

于 2010-07-19T17:49:49.023 に答える