【问题标题】:Passing objectId via prepareForSegue using Parse PFQueryTableViewController使用 Parse PFQueryTableViewController 通过 prepareForSegue 传递 objectId
【发布时间】:2015-03-26 15:19:51
【问题描述】:

这很可能是一个简单的答案。我正在使用 PFQueryTableViewController 来填充表格视图。我想将当前行的 Parse objectId 传递给我的 crDetailViewController 但不知道如何。我试图传递的变量称为 critterId。

我已经更新了我的代码以反映 Race B 在下面的@race-b 建议,它使构建能够成功,但是当我选择一个创建断点的实际单元格时出现断点错误。当我查看调试代码时,它显示对象的值为 nil,因此它不会以某种方式通过,因为根据定义选择了一个实体,否则如何首先选择单元格?感谢您的帮助!

导入 UIKit

类 crTableViewController: PFQueryTableViewController {

// Initialise the PFQueryTable tableview
override init!(style: UITableViewStyle, className: String!) {
    super.init(style: style, className: className)
}

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

    // Configure the PFQueryTableView
    self.parseClassName = "CritterType"
    self.textKey = "Name"
    self.imageKey = "mainPhoto"
    self.pullToRefreshEnabled = true
    self.paginationEnabled = false

}


// Define the query that will provide the data for the table view
override func queryForTable() -> PFQuery! {
    var query = PFQuery(className: "CritterType")
     return query
}

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 65
}

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
            self.performSegueWithIdentifier("crDetailSegue", sender: self)
}


override func prepareForSegue(segue: UIStoryboardSegue,
    sender: AnyObject?) {

        if segue.identifier == "crDetailSegue" {
            let detailViewController = segue.destinationViewController
                as! crDetailViewController

            let myIndexPath = self.tableView.indexPathForSelectedRow()
            let row = myIndexPath!.row
               println(row)
            println(myIndexPath)
            detailViewController.critterId = self.objectAtIndexPath(myIndexPath)
        }
}

}

【问题讨论】:

    标签: uitableview swift parse-platform


    【解决方案1】:

    应该有一个你可以使用的 objectAtIndexPath,它将在你想要的任何 indexPath.row 处返回对象。

    【讨论】:

      【解决方案2】:

      Parse 将数据放入名为 objects 的数组中,因此要传递对象而不是 ID,请使用以下代码:

      detailViewController.critter = self.objects[indexPath.row]
      

      【讨论】:

      • 谢谢蒂莫西。会试一试的!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多