• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - PFQueryTableViewController 中的 didSelectRowAtIndexPath 方法

[复制链接]
菜鸟教程小白 发表于 2022-12-13 05:24:30 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在使用 Parser 和 iOS 创建我的第一个应用程序。现在我只有一个带有 Parse 对象的 tableview,但我无法点击一行并打开一个 View Controller 来显示所选对象的详细信息。 这就是我从 Parse 获取对象的方式:

- (id)initWithCoderNSCoder *)aCoder {
    self = [super initWithCoder:aCoder];
    if (self) {
        // Customize the table

        // The className to query on
        self.parseClassName = @"cadenas";

        // The key of the PFObject to display in the label of the default cell style
        self.textKey = @"chain_name";

        // Uncomment the following line to specify the key of a PFFile on the PFObject to display in the imageView of the default cell style
        // self.imageKey = @"image";

        // Whether the built-in pull-to-refresh is enabled
        self.pullToRefreshEnabled = YES;

        // Whether the built-in pagination is enabled
        self.paginationEnabled = YES;

        // The number of objects to show per page
        self.objectsPerPage = 25;
    }
    return self;
}

- (PFQuery *)queryForTable {
    PFQuery *query = [PFQuery queryWithClassName"cadenas"];


    if ([self.objects count] == 0) {
        query.cachePolicy = kPFCachePolicyCacheThenNetwork;
    }

    [query orderByAscending"createdAt"];

    return query;
}

这是我的 cellForRowAtIndexPath 方法:

- (UITableViewCell *)tableViewUITableView *)tableView
         cellForRowAtIndexPathNSIndexPath *)indexPath
                        objectPFObject *)object {
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                      reuseIdentifier:CellIdentifier];
    }

    // Configure the cell to show todo item with a priority at the bottom
    cell.textLabel.text = [object objectForKey"chain_name"];

    return cell;
}

这就是 didSelectRowAtIndexPath 方法:

-(void)tableViewUITableView *)tableView didSelectRowAtIndexPathNSIndexPath *)indexPath
{
    Detalle_ChainViewController *detailViewController =[self.storyboard instantiateViewControllerWithIdentifier"detalle_chain"];


    NSLog(@"CELL TAPPED");
    [self.navigationController pushViewController:detailViewController animated:YES];
}

我一直在搜索如何获取选定的行对象以将其传递给详细 View Controller ,但没有成功。

欢迎任何帮助。



Best Answer-推荐答案


您可以使用数组来存储对象并在 cellForRowAtIndexPath 中更新它们

例如我在这里使用字典,因为查询结果的计数未定义;OperationPFObject的子类)

class HistoryViewController: PFQueryTableViewController {
    var operations: [Int: Operation] = [:]

    override init!(style: UITableViewStyle, className: String!) {
        super.init(style: style, className: className)
    }

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        parseClassName = "Operation";
        textKey = "title";
        pullToRefreshEnabled = true;
        paginationEnabled = true;
        objectsPerPage = 25;
    }

    override func queryForTable() -> PFQuery! {
        var query = Operation.query()
        query.whereKey("wallet", equalTo: wallet)
        query.addDescendingOrder("date")
        return query
    }    

    override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!, object: PFObject!) -> PFTableViewCell! {
        let operation = object as! Operation
        operations[indexPath.row] = operation
        var cell: PFTableViewCell = tableView.dequeueReusableCellWithIdentifier("cell") as! PFTableViewCell

        // set up your cell

        return cell
    }

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        let row = tableView.indexPathForSelectedRow()!.row
        (segue.destinationViewController as! OperationInfoViewController).loadOperation(operations[row]!)
    }
}

关于ios - PFQueryTableViewController 中的 didSelectRowAtIndexPath 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28570869/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap