テーブル ビュー セルで画像と行アクションを同時に取得するのに問題があります。いくつかの異なる順列を機能させることができます (行アクションは機能しますが、画像は行アクションがアクティブ化された後にのみ読み込まれ、画像は読み込まれますが行アクションは使用できません)、ページの読み込み時に画像を読み込み、行アクションにアクセスできるようにすることはできません。
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("childrenCell", forIndexPath: indexPath) as! ChildrenTableViewCell
cell.textLabel?.text = childFirstName[indexPath.row]
cell.detailTextLabel?.text = childLastName[indexPath.row]
self.childImage[indexPath.row].getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in
if error == nil {
let image = UIImage(data: imageData!)
cell.imageView?.image = image
}
self.tableView.reloadData()
}
return cell
}
上記のコードは、セルにデータを入力するために使用されます。動き回ると、self.tableView.reloadData()
さまざまな組み合わせが得られます(ただし、必要なものではありません)。行アクションのコードは非常に標準的で、ユーザーに 2 つのオプションを提供します。
余談ですが、Parse in query (以下) からデータを取得したいのviewDidLoad
ですが、うまくいかないようです。おそらく答えは、クエリを に配置するのではなく、その問題を解決することcellForRowAtIndexPath
です。
let query = PFQuery(className:"children")
query.whereKey("programID", equalTo: passedProgramID!)
query.findObjectsInBackgroundWithBlock {
(objects: [PFObject]?, error: NSError?) -> Void in
if error == nil {
print("Successfully retrieved \(objects!.count) children.")
if let objects = objects {
for object in objects {
self.childFirstName.append(object["childFirstName"] as! String)
self.childLastName.append(object["childLastName"] as! String)
self.childImage.append(object["childImage"] as! PFFile)
}
}
} else {
print("Error: \(error!) \(error!.userInfo)")
}
}
self.tableView.reloadData()