如何找不到对象,如何在PFQueryTableViewController中创建默认消息

时间:2015-03-08 15:21:31

标签: uitableview parse-platform ios8

我希望使用Parse PFQueryTableViewController来显示存储在云中的项目列表。

但是,当没有项目时,我希望通过自定义的tableview单元格显示“找不到项目”,在tableview中显示默认消息。

我正在寻找关于如何自定义PFQueryTableViewController以实现此目的的输入。

提前致谢

1 个答案:

答案 0 :(得分:0)

它可以通过一些额外的方法覆盖和一点点诡计来实现。我想补充说的是(imo)我们正在进入领域,这样可以减少iOS类的parse.com专业化的净收益。

// lie about the actual count
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if (self.objects.count) return [super tableView:tableView numberOfRowsInSection:section];
    return 1;
}

// answer a dummy object when there are none
- (PFObject *)objectAtIndexPath:(NSIndexPath *)indexPath {
    if (self.objects.count) return [super objectAtIndexPath:indexPath];
    return [PFObject objectWithClassName:[self parseClassName]];
}

// change how we behave for the dummy object
- (PFUI_NULLABLE PFTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFUI_NULLABLE PFObject *)object {

    // check for your dummy object (it will be the only one with no id
    // return a special cell in that case
    if (!object.objectId) {
        // create and return the special custom cell here
        // if you're unsure about this, [see this SO answer][1]
    } else {
        PFTableViewCell *cell;
        // the regular cellForRowAtIndexPath behavior goes here
        return cell;
    }
}

就专用子类的成本效益而言,我对UITableViewController的感觉也是如此。使用包含表视图的常规UIViewController可以获得最多的控制(而不是那么多额外的工作)。