6

私は親ビューを持っており、その上に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を却下する場合

+0

[self.searchDisplayController setActive:NO anima ted:YES]; – jussi

+0

ありがとう@jussi ..それは動作します!しかし、それはなぜそれ自体で却下されないのでしょうか?これは、searchviewcontrollerを強制的に終了させるようなものです。 –

+0

コントローラを無効にする前に情報を保存したい人がいるためです。私はこれを回答として掲示します。 – jussi

答えて

13

、ちょうどこのコードを使用します。

[self.searchDisplayController setActive:NO animated:YES]; 
1

デリゲート関数でレスポンダを辞任実装する必要がありますすなわち

- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar { 
     [searchBar resignFirstResponder]; 
} 
+0

これは単にキーボードを消しますが、検索ビューとキャンセルボタンは閉じません。その場合は –

+0

、jussiは正しい – cekisakurek

-1

メモリの警告がで表示されますアプリケーションの実行中はいつでも、メモリ警告が発生し、ビューオブジェクトと使い捨てオブジェクトを再作成する必要があると想定する必要があります。

私達は私達の配列nilに設定することにより、このような状況を扱っている:

- (void)didReceiveMemoryWarning 
{ 
[super didReceiveMemoryWarning]; 

if([self isViewLoaded] && self.view.window == nil) 
{ 
    self.view = nil; 
    keys = nil; 
    names = nil; 
    errorDuringNetworkCall = nil; 
} 
} 

そしてセグエ操作を実行する前に、検索バーのテーブルビューを却下することにより:

[self performSegueWithIdentifier:@"navigateToNextScreen" sender:self]; 
self.searchBar.text = @""; 
[self.searchDisplayController setActive:NO animated:YES]; 

メモリ警告を受信した後、 viewDidLoadメソッドが再度呼び出され、配列が読み込まれると、検索バーは引き続き有効になります。

+0

私は質問に全く答えないとは思わない –

関連する問題