如何使用indexPathsForSelectedItems在集合视图中获取所选项

jmc*_*tel 18 nsindexpath ios uicollectionview swift

我有一个照片集合视图,想要将照片传递给一个detailViewControler.

收集数据来自:

 var timeLineData:NSMutableArray = NSMutableArray ()
Run Code Online (Sandbox Code Playgroud)

我想使用准备segue方法.

我的问题是如何从被单击的单元格中获取好的indexPath?

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue == "goToZoom" {
        let zoomVC : PhotoZoomViewController = segue.destinationViewController as PhotoZoomViewController
        let cell = sender as UserPostsCell

        let indexPath = self.collectionView!.indexPathForCell(cell)
        let userPost  = self.timeLineData.objectAtIndex(indexPath!.row) as PFObject
        zoomVC.post = userPost

    }
} 
Run Code Online (Sandbox Code Playgroud)

rde*_*mar 35

prepareForSegue:sender:中的sender参数将是从单元格连接segue的单元格.在这种情况下,您可以从单元格中获取indexPath,

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "showZoomController" {
       let zoomVC = segue.destinationViewController as PhotoZoomViewController
       let cell = sender as UICollectionViewCell
       let indexPath = self.collectionView!.indexPathForCell(cell)
       let userPost  = self.timeLineData.objectAtIndex(indexPath.row) as PFObject
        zoomVC.post = userPost
    }
} 
Run Code Online (Sandbox Code Playgroud)


pba*_*sdf 17

indexPathsForSelectedItems收益indexPaths数组(因为可能有选择的几个项目),所以你需要使用:

let indexPaths : NSArray = self.collectionView!.indexPathsForSelectedItems()
let indexPath : NSIndexPath = indexPaths[0] as NSIndexPath
Run Code Online (Sandbox Code Playgroud)

(您可能应该测试是否选择了多个项目,并相应地处理).


tua*_*pen 5

迅速3:

let index = self.collectionView.indexPathsForSelectedItems?.first