私は親ビューを持っており、その上にtableviewコントローラのサブクラスであるsearchbarとsearchbarがあります。 searchBarとsearchdisplaycontrollerのデリゲートは、UISearchdisplaycontrollerから継承された別のクラスに設定されます。このクラスでは、データソースとtableviewとsearchbarの代理人が別々に処理されます。クラスはARCの下にあります。検索ビューを閉じることはできません。
したがって、ユーザーが検索をタップすると、コントロールはFilesListController(親)クラスからこのクラスに転送されます。今、ユーザーがキャンセルボタンをタップし、このクラスに設定された検索バーデリゲートすなわち
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar
と呼ばれているが、フルスクリーンsearchtableviewを棄却する目的を果たすとparentviewcontrollerに戻ることはありません。しかし、このクラスを検索クラスに記述しないと、正しく動作します。このような
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
::私はXIBにして呼び出すに検索バーのデリゲートを設定している
self.searchResultsTableView.delegate = self;
self.searchResultsTableView.dataSource = self;
[parentFileViewController.searchDisplayController setDelegate:self];
はどこで間違ったんですか?前もって感謝します。あなたはSearchBarControllerにUISearchBarを却下する場合
[self.searchDisplayController setActive:NO anima ted:YES]; – jussi
ありがとう@jussi ..それは動作します!しかし、それはなぜそれ自体で却下されないのでしょうか?これは、searchviewcontrollerを強制的に終了させるようなものです。 –
コントローラを無効にする前に情報を保存したい人がいるためです。私はこれを回答として掲示します。 – jussi