0

私の(と) に (two arrays名、姓) があります。この に検索バーを作りたいです。2 つの文字列を持つクラスを作成しました。TableViewcell.textLabelcell.detailTextLabelTableView

@interface clientContent : NSObject { }
@property (nonatomic, strong) NSString *clName;
@property (nonatomic, strong) NSString *clLast;
@end

次に、メインクラス(テーブルビューを持つ)に配列を作成し、このような情報を追加しました

    for (int i = 0; i < PQntuples(clientQuery); i++)
{
    clientContent *cc = [[clientContent alloc] init];
    cc.clName = [[NSString alloc] initWithUTF8String:PQgetvalue(clientQuery, i, 0)];
    cc.clLast = [[NSString alloc] initWithUTF8String:PQgetvalue(clientQuery, i, 1)];
    [allClients addObject:cc];
}

この後、にロードしtableViewます。

clientContent *cc = [allClients objectAtIndex:indexPath.row];
    cell.textLabel.text = cc.clName;
    cell.detailTextLabel.text = cc.clLast;
}

それから私は使用します

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString

それを正しくする方法は?理解できません..

4

1 に答える 1

0

必要に応じて、UISearchDisplayController の searchDisplayController:shouldReloadTableForSearchString: delegate メソッドをオーバーライドし、searchResultsTableView のデータソース配列をフィルター処理する必要があります。

配列(clientContentオブジェクトの配列)に述語を適用し、dataSource配列を変更できます。述語を使用すると、両方のフィールド (clName と clLast) で配列をフィルター処理できます。

https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSPredicate_Class/Reference/NSPredicate.htmlから述語に関連するヘルプを取得できます。

于 2012-11-05T09:45:07.227 に答える