PFQueryTableViewController if语句

时间:2013-08-19 07:48:33

标签: iphone ios objective-c uitableview

我正在学习如何开发ios应用程序,我有一个问题需要一些帮助。

我使用以下代码从我的类中检索解析数据。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:  (NSInteger)section
{
return [recipes count];
}

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

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

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

Recipe *recipe = [recipes objectAtIndex:indexPath.row];

UIImageView *imageView = (UIImageView*) [cell viewWithTag:100];
imageView.image = [UIImage imageNamed:recipe.imageFile];
UILabel *nameLabel = (UILabel*) [cell viewWithTag:101];
nameLabel.text = recipe.name;
UILabel *prepTimeLabel = (UILabel*) [cell viewWithTag:102];
prepTimeLabel.text = recipe.prepTime;

return cell;

}

我的表格包含准备时间值,该值是准备食谱所需时间的数值。我希望用户能够根据他们的准备时间查看食谱。让我们说我有一个按钮,用户可以看到准备最快的饭菜。我尝试过使用if语句和while循环,但我没有取得多大成功。我已经尝试了诸如if(prepTime stringValue isEqualToString:@“30分钟”)之类的东西然后做其余的但我没有工作。

任何帮助表示赞赏。正如我所说,我只是在学习,所以请尝试新解释你的解释。

谢谢

1 个答案:

答案 0 :(得分:0)

使用PFQueryTableViewController,您可以指定用于检索表视图数据的Parse查询。在这种情况下,您可以根据prepTime过滤配方。

在视图控制器中,实现以下内容:

- (PFQuery *)queryForTable
{
  PFQuery *query = [PFQuery queryWithClassName:@"yourRecipeClassName"];
  [query whereKey:@"prepTime" lessThan:self.maxPrepTime];
  /*
    Customise as needed, e.g., could be:
    [query whereKey:@"prepTime" equalTo:@30];
  */
  return query;
}

您可以向视图控制器添加属性以保存当前选定的prepTime(例如@property NSNumber *maxPrepTime),然后更改选定的过滤器,执行以下操作:

self.maxPrepTime = @60;
[self.tableView reloadData];

您不需要在tableView:cellForRowAtIndexPath:方法中进行任何额外的工作。