这很可能是一个简单的答案。我正在使用PFQueryTableViewController来填充表视图。我想将当前行的Parse objectId传递给我的crDetailViewController,但无法弄清楚如何。我尝试传递的变量叫做critterId。
我已经更新了我的代码,以反映下面的种族B的@ race-b建议,它使构建成功,但是当我选择一个创建断点的实际单元格时,我得到一个断点错误。当我查看调试代码时,它显示对象的值为nil,因此它不会以某种方式通过,因为根据定义,选择了一个实体,否则如何在第一时间选择单元格?谢谢你的帮助!
导入UIKit
class 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)
}
}
}
答案 0 :(得分:0)
你应该使用一个objectAtIndexPath,它将返回你想要的任何indexPath.row对象。
答案 1 :(得分:0)
Parse将数据放入一个名为objects
的数组中,因此要传递对象而不是ID,请使用以下代码:
detailViewController.critter = self.objects[indexPath.row]