过滤硬编码的tableview产品数据库,例如价格缩小

时间:2014-07-28 13:36:58

标签: ios objective-c uitableview

我有一个包含4个字段的小型数据库:标题,价格,相机(Y / N)和照片。

它是一个应用程序,显示UITableView中的产品列表和每个产品的DetailedView。

现在我要做的是添加另一个ViewController,它将包含一个Slider(适用于价格)和一个Segmented Controler(适用于Camera,所以如果产品有相机是或否)。点击底部的按钮。

用户应该可以转到这个ViewController,例如设置50美元的价格,按下Apply后,应用程序会将它们带回UITableView,只显示价格低于50美元的产品。

如果用户选择通过相机进行过滤,他们也应该能够使用分段控制器进行过滤。

我有什么想法可以继续这样做,以及是否有可用的教程?我能找到的关于过滤的唯一教程是关于添加搜索栏,但这不是我想要做的。

我使用以下代码将我的内容显示在表格中:

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

    static NSString *CellIdentifier = @"TableCell";
    TableCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    // Configure the cell...

    int row = [indexPath row];

    cell.TitleLabel.text = _Title[row];
    cell.PriceLabel.text = _Price[row];
    cell.CompanyLabel.text = _Company[row];
    cell.ThumbImage.image = [UIImage imageNamed:_Images[row]];
    cell.DescriptionLabel.text = _Description[row];
    cell.CameraLabel.text = _Camera[row];

我想这都是非常基本的。有没有办法像这样进行过滤,还是我必须学习核心数据?

我的数据以下列格式存储在TableViewController.m中:

_Title = @[@"180 QX HD",
               @"200 QX",
               @"350 QX RTF",

等和

 _Price = @[@"189",
              @"229",
              @"420",

2 个答案:

答案 0 :(得分:0)

如果您有Core-Data数据库,您可能会在Applying a filter to NSFetchedResultsController找到您的问题的答案。 如果不是,您必须发布更多信息和一些代码。

答案 1 :(得分:0)

有两个NSMutableArrays:

  1. 包含ALL的数组(allResultsArray)
  2. 具有FILTERED结果的数组(filteredResultsArray)
  3. filteredResultsArray最初使用allResultsArray填充,然后基于所有过滤器控件等,只有相关结果保留在其中。

    您需要根据过滤器创建修改filteredResultsArray的函数。

    您的UITableView应该只在其所有委托函数中引用filteredResultsArray。 每当filteredResultsArray发生变化时重新加载表