我发现没有合适的Swift示例来实现我想要的功能,所以我允许自己提问。
这行文字:
触发以下错误:
我使用collectionView来显示PFObjects,并希望使用prepareForSegue将显示的单元格数据发送到第二个控制器。
目前,我正在努力使代码的这一部分工作:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "goto_answerquestion"){
var indexpath : NSIndexPath = self.collectionView.indexPathsForSelectedItems()
}
}
这行文字:
var indexpath : NSIndexPath = self.collectionView.indexPathsForSelectedItems()
触发以下错误:
(UICollectionView, numberOfItemsInSection: Int)-> Int does not have a member named 'indexPathsForSelectedItems'
如果我使用了错误的方法,或者您需要额外的数据来获得适当的问题概述,请让我知道。
回答
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "segue_identifier"){
// check for / catch all visible cell(s)
for item in self.collectionView!.visibleCells() as [UICollectionViewCell] {
var indexpath : NSIndexPath = self.collectionView.indexPathForCell(item as CollectionViewCell)!
var cell : CollectionViewCell = self.collectionView!.cellForItemAtIndexPath(indexpath) as CollectionViewCell
// Grab related PFObject
var objectData:PFObject = self.questionData.objectAtIndex(indexpath.row) as PFObject
// Pass PFObject to second ViewController
let theDestination = (segue.destinationViewController as answerPageViewController)
theDestination.questionObject = objectData
}
}
}
indexPathsForSelectedItems
返回一个数组,但你把它赋值给了一个NSIndexPath
类型的变量。 - linimin