如何使用UISearchBar Delegate和数组?

时间:2016-06-16 13:10:01

标签: objective-c swift uitableview delegates uisearchbar

我想用数组实现UIsearchBar。我有一个城市名称的数组。如何使用表格视图实现它?

1 个答案:

答案 0 :(得分:0)

首先,您应设置UISearchBar的委托,并使用过滤结果创建其他NSMutableArray。您UITableView的dataSource现在将释放此新数组。

然后,添加如下的委托方法:

-(void)searchBar:(UISearchBar*)searchBar textDidChange:(NSString*)text {
    filteredTableData = [[NSMutableArray alloc] init];

    for (Food* food in allTableData)
    {
        NSRange nameRange = [food.name rangeOfString:text options:NSCaseInsensitiveSearch];
        NSRange descriptionRange = [food.description rangeOfString:text options:NSCaseInsensitiveSearch];
        if(nameRange.location != NSNotFound || descriptionRange.location != NSNotFound)
        {
            [filteredTableData addObject:food];
        }
    }
    [self.tableView reloadData];
}

有关完整代码,请参阅此处:Filtering a UITableView with a search bar

希望这有帮助。