0

UISearchBar を searchString でプリロードしようとしています。

現在のセットアップでは。UITableViewController で UISearchDisplayController を使用しています。

私が使用する最初のアプローチは、次のメソッドで検索文字列を設定することです。

- (void) presetSearchDisplayControllerWithString:(NSString*)searchString{
    [self.searchDisplayController setActive:YES animated:NO];
    [self.tableView setContentOffset:CGPointMake(0, 0)];
    self.searchBar.text = searchString;
    self.searchFetchedResultsController = [self   createFetchedResultsControllerWithSearchTerm:searchString];
}

できます。UISearchbar には検索文字列が表示され、元の tableView と TableViewIndex は非表示になります。しかし、searchBar のキャンセル ボタンを押すと、クラッシュします。

* -[UISearchDisplayController setActive:animated:]、/SourceCache/UIKit_Sim/UIKit-2372/UISearchDisplayController.m:682 でのアサーションの失敗 キャッチされていない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています

2番目のバリアンも機能していません

- (void) searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller {
    [self.searchDisplayController.searchBar setText:@"rune"];
}

検索バーをタップすると機能します。ただし、完了するまでは、通常の tableView のみが表示されます。

4

1 に答える 1

0

次のようなことを試しましたか (発生した例外にのみ基づく):

[self.searchDisplayController setActive:NO animated:NO];
self.searchBar.text = searchString;
[self.searchDisplayController setActive:YES animated:NO];
[self.tableView setContentOffset:CGPointMake(0, 0)];
self.searchFetchedResultsController = [self createFetchedResultsControllerWithSearchTerm:searchString];
于 2013-01-22T15:22:35.763 に答える