1

検索バーに単語を挿入した後、別のテーブル ビューが表示されるのはなぜですか?

検索ボックスに書き込む前に

ここに画像の説明を入力

検索ボックスに書き込んだ後

ここに画像の説明を入力

私が使用しているコードは次のとおりです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *identifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
    }

    if (tableView == self.searchDisplayController.searchResultsTableView) {
        cell.textLabel.text = [NSString stringWithFormat:@"%@", filteredFields[indexPath.row]];
    }
    else
    {
        cell.textLabel.text = [NSString stringWithFormat:@"%@", oriFields[indexPath.row]    ];
    }


    return cell;
}

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@", searchText];
    filteredFields = (NSMutableArray *)[oriFields filteredArrayUsingPredicate:resultPredicate];
}

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
    [self filterContentForSearchText:searchString
                               scope:[[self.searchDisplayController.searchBar scopeButtonTitles]
                                      objectAtIndex:[self.searchDisplayController.searchBar
                                                     selectedScopeButtonIndex]]];

    return YES;
}
4

2 に答える 2

1

検索表示コントローラーは、検索結果を表示するテーブル ビューと共に、検索バーの表示を管理します。

検索バーと、検索対象のデータを管理するビュー コントローラーを使用して、検索ディスプレイ コントローラーを初期化します。ユーザーが検索を開始すると、検索ディスプレイ コントローラーは、元のビュー コントローラーのビューに検索インターフェイスを重ねて表示し、テーブル ビューに検索結果を表示します。

アップルが参照

于 2014-03-05T07:54:09.727 に答える
0

おそらくデータソースとして NSMutableArray を使用しています...そして、検索を入力するときにそれを消去しないため、値が2倍になります...そうではありませんか?

于 2014-03-05T07:55:35.937 に答える