4

私は次のようにUISearchDisplayControllerページビューを持っています(元の状態)

ここに画像の説明を入力

検索バーをクリックして検索語を入力すると、テーブルに結果のリストが表示されます

ここに画像の説明を入力

テーブル内のエントリをクリックすると、スタックの一番上に新しい viewController が表示されます

ここに画像の説明を入力

私の意図は、キャンセル ボタン (左上) をクリックすると、ルート ビューに searchDisplay コントローラーの元の状態が表示されることです。

ここに画像の説明を入力

これは私が試したものです

私のキャンセル方法(左上のキャンセルボタンをクリックするとトリガーされます)

- (void)cancel
{
  [self dismissViewControllerAnimated:YES completion:NULL];
  [self searchBarCancelButtonClicked:self.searchDisplayController.searchBar];
}

そして、検索バーのデリゲートメソッドでこれを行いました

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
    self.searchBar.showsCancelButton = NO;

    [self.searchBar resignFirstResponder];
    self.searchBar.text = @"";
    searchDisplayController.searchResultsTableView.hidden = YES;
    [self searchDisplayControllerWillEndSearch:self.searchDisplayController];
}

キャンセルボタンをクリックした後に達成できたのはこれだけです

ここに画像の説明を入力

元のテーブルビューが表示されないようです (ページをクリックした場合にのみ表示されます)

メソッドを変更して検索を元の状態に戻すにはどうすればよいですか?

4

1 に答える 1

8

試す[searchDisplayController setActive:NO animated:NO]

これにより、検索テーブルが非表示になります。

于 2012-12-24T19:06:11.733 に答える