0

すべての国とその国旗を含むテーブルビューがあります。私は検索バーを追加する作業を行ってきましたが、検索バーを iOS7 で許可されているナビゲーション バーに移動することを決定するまで、すべてが機能していました (私の目的では、そのレイアウトは非常にうまく機能します)。

これで、テーブルが正常に読み込まれ、検索バーが正常に表示されます。検索バーに入力すると、フィルタリングされたリストがコンソールを介して構築されていることがわかります。検索結果テーブルが表示されないことを除いて、すべて問題ないようです。つまり、フィルタされたリストが新しいテーブルビューに表示されません。

このメソッドは、フィルタリングされたリストを構築するために呼び出されています。

-(void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope

しかし、標準的な方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

呼び出されることはありません。

先ほど言ったように、検索バーがナビゲーション バーにないときは問題なく動作しています。ViewDidLoad で次のデリゲートとプロパティを割り当てました。

searchDisplayController.delegate = self;
searchDisplayController.searchResultsDataSource = self;
searchDisplayController.searchResultsDelegate = self;

searchDisplayController.displaysSearchBarInNavigationBar = YES;

私も持っています:

#pragma mark - UISearchDisplayController Delegate Methods
-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
// Tells the table data source to reload when text changes
[self filterContentForSearchText:searchString scope:
 [[searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[searchDisplayController.searchBar selectedScopeButtonIndex]]];
// Return YES to cause the search result table view to be reloaded.
return YES;

}

私は何が欠けていますか???

4

2 に答える 2

1

私は同じ問題に遭遇しています。検索バーをtableHeaderViewに追加すると、すべて正常に動作しますself.tableView.tableHeaderView = mySearchBar;

興味深いことがわかりました: source-tableview のサイズが適切に変更されないため、結果の tableview がオーバーレイされます。

私のアプリはユニバーサルです。iPadで実行すると、ソーステーブルビューが完全にカバーされるため、結果テーブルビューが表示されません。しかし、iPhone では次のように表示されます。

ここに画像の説明を入力

于 2013-11-26T22:41:49.747 に答える
1

私は Morpheus と同じ問題を抱えていself.edgesForExtendedLayout = UIRectEdgeNone; ました。

于 2014-05-20T22:49:51.087 に答える