Я не могу найти хороший пример, чтобы делать то, что я хочу, используя swift, поэтому я позволяю себе задавать вопрос.prepareForSegue collectionView indexPath using swift
Im using collectionView для отображения PFObjects, и я хочу отправить отображаемые данные соты на второй контроллер, используя prepareForSegue.
На данный момент, Im изо всех сил, чтобы сделать эту часть кода работает:
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'
пожалуйста, дайте я знаю, если Im использует неправильный метод, или если вам нужны дополнительные данные, чтобы иметь соответствующий обзор проблема.
ОТВЕТ
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. –
что именно вы хотите сделать? –