テーブルビューコントローラーのサブクラスであるテーブルビューと検索バーを持つ親クラスがあります。searchBar と searchdisplaycontroller のデリゲートは、UISearchdisplaycontroller から継承された別のクラスに設定されます。tableview と searchbar のデータソースとデリゲートは、このクラスで個別に処理されます。クラスはARCの下にあります。
したがって、ユーザーが検索をタップすると、コントロールは FilesListController (親) クラスからこのクラスに転送されます。ここで、ユーザーがキャンセル ボタンをタップすると、このクラスに設定された検索バー デリゲート、つまり
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar
呼び出されますが、全画面検索テーブルビューを閉じて親ビューコントローラーに戻るという目的には役立ちません。ただし、このデリゲートを検索クラスに記述しなければ、適切に機能します。xib と呼び出し時に検索バーのデリゲートを設定しました。
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
このような:
self.searchResultsTableView.delegate = self;
self.searchResultsTableView.dataSource = self;
[parentFileViewController.searchDisplayController setDelegate:self];
どこが間違っていますか?前もって感謝します。