如何使用带两个数组的searchController

时间:2012-11-05 08:41:47

标签: iphone ios

我的two arraysTableViewcell.textLabel)中有cell.detailTextLabel(名字,姓氏) 我想在此TableView中创建一个搜索栏。 我用两个字符串创建了类。

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

然后我在主类(具有Table视图)中创建了数组并添加了我的信息 像这样

    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

如何使它正确?我无法理解..

1 个答案:

答案 0 :(得分:0)

您应该覆盖searchDisplayController:shouldReloadTableForSearchString:UISearchDisplayController的委托方法,并根据需要过滤searchResultsTableView的数据源数组。

您可以在您的数组(clientContent对象数组)上应用谓词并更改dataSource数组。使用谓词,您可以在两个字段(clName&amp; clLast)上过滤您的数组。

您可以从https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSPredicate_Class/Reference/NSPredicate.html

获取与谓词相关的帮助