我终于成功地将一个事件保存到Parse中的特定用户,但还没有完全弄明白如何将它们全部用于在不同的视图控制器中填充表视图,"我的事件& #34;表视图,用户可以在其中查看他们创建的事件。
如何让表格视图填充事件的图像和标题?有一个带键的事件类"图像"和"标题"但为了获取特定用户的事件,我必须通过用户类并查询"事件"键。
很抱歉,如果这有点令人困惑,并且没有太多代码可以解决,如果需要进一步说明不是问题。谢谢!
import UIKit
import Parse
class CalenderViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var eventsToAttend : [Event]? = []
var user = PFUser.currentUser()
var responseObjects : [AnyObject]? = []
@IBOutlet weak var eventsTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
var query = PFUser.query()
query?.includeKey("Events")
query?.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in
self.responseObjects = objects
// self.responseObjects = query?.findObjects()
})
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier("cell") as! UITableViewCell
user?.objectForKey("Events")
cell.textLabel?.text
return cell
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// if let eventsToAttend = self.eventsToAttend {
// return eventsToAttend.count
// }
return responseObjects!.count
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
}
答案 0 :(得分:0)
Parse已经为你完成了繁重的工作,你可以简单地使用他们的PFQueryTableViewController类,它将填充你的Event对象。请参阅此处了解如何使用它:https://parse.com/docs/ios/api/Classes/PFQueryTableViewController.html 还有一个教程:http://blog.parse.com/learn/engineering/loading-remote-images-in-a-table-view/
如果愿意,可以将PFQueryTableViewController嵌入到另一个视图控制器中。如果你需要开始做一些特殊的事情,比如编辑和删除(或隐藏),那么滚动你自己的实现就会变得更好。
如果你仍然想尝试使用你开始使用的代码,那么这就是你所缺少的:
1)在cellForRowAtIndexPath方法中,使用indexPath.row从self.responseObjects中获取正确的Event对象(假设只有一个部分)。
2)使用您在第一步中获得的Event对象,将title属性分配给cell.textLabel?.text。
3)假设Event.image属性是PFFile,您需要加载PFFile异步,在回调中从字节创建一个新图像,然后将该新图像分配给cell.imageView.image属性。