如何根据单击的单元格检索对象?

时间:2015-11-10 02:36:38

标签: ios swift parse-platform

我有一个朋友系统,收集视图中的所有朋友。目前我可以单击该单元格,该单元格上的信息将转移到新的视图控制器。从该视图控制器有一个按钮可以转到表格视图。我想从Pointer类中检索解析中的所有对象,其中用户ID与您单击该单元格的用户相匹配。我将用户名传递给页面。以下是仅为登录用户获取对象的代码。我该如何为其他用户这样做?

下面是指针类 enter image description here

以下是User类 enter image description here

 func getSongs(){
    let retrieve = PFQuery(className: "Pointer")
    retrieve.findObjectsInBackgroundWithBlock({
        (objects: [AnyObject]?, error: NSError?) -> Void in
        var object = objects as! [PFObject]
        if(error == nil){

            //self.titleofsong = []
            //self.artist = []

            for i in 0...object.count-1{
                //self.ret.append(object[i].valueForKey("user") as! String)

                if (object[i].valueForKey("user")!.objectId == currentUserID){
                    //print(object[i].valueForKey("title") as! String)
                    self.titleofsong.append(object[i].valueForKey("title") as! String)
                    self.artist.append(object[i].valueForKey("artist") as! String)
                    print("friends song \(self.titleofsong)")
                    print("friends artist \(self.artist)")
                }
            }
        }

    })

}

以下是将朋友信息传递给下一个视图控制器的代码。

  func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell: friendcellView = collectionView.dequeueReusableCellWithReuseIdentifier("friendcell", forIndexPath: indexPath) as! friendcellView




    cell.friendname.text = arrayOfFriendsNames[indexPath.item]
    cell.friendpic.image =  arrayOfFriends[indexPath.item]
    cell.friendpic.layer.cornerRadius = cell.friendpic.frame.size.width/2;
    cell.friendpic.clipsToBounds = true



    return cell
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
    print("Cell \(indexPath.item) selected")
    print(arrayOfFriendsNames[indexPath.item])
     self.dicSelected = ["friendname" : arrayOfFriendsNames[indexPath.item], "friendimage" :  arrayOfFriends[indexPath.item]]
    print("didSelected before prepareForSegue \(self.dicSelected)")

    self.selectedData.text = arrayOfFriendsNames[indexPath.item] as? String
    self.selectedData.image = arrayOfFriends[indexPath.item] as? UIImage

    self.performSegueWithIdentifier("friendaccess", sender: selectedData)
}

  override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "friendaccess"){

        let nextViewOBJ = segue.destinationViewController as! FriendProfile
       nextViewOBJ.dataModel = self.selectedData;
    }
}

1 个答案:

答案 0 :(得分:0)

首先,您需要准备模型类并将所有朋友列表详细信息存储在该类中,然后将该模型类对象存储到集合视图数组中。

之后从数组中检索对象并在集合视图中显示。

一旦完成。现在,如果您想在用户选择单元格时转到另一个视图控制器,那么获取索引路径,并在此基础上从集合视图中获取模型类对象。

现在在另一个视图控制器上传递此对象并执行任何操作。

这件事成功了......做吧。