prepareForSegue collectionView indexPath using swift

Ich finde kein gutes Beispiel, um mit swift das zu tun, was ich will, also erlaube ich mir, die Frage zu stellen.

Im Verwenden eines collectionView zum Anzeigen von PFObjects und Senden der angezeigten Zellendaten mithilfe von prepareForSegue an einen zweiten Controller.

n diesem Punkt bemühe ich mich, diesen Teil des Codes zum Laufen zu bringen:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if(segue.identifier == "goto_answerquestion"){
            var indexpath : NSIndexPath = self.collectionView.indexPathsForSelectedItems()
        }
    }

diese Linie

var indexpath : NSIndexPath = self.collectionView.indexPathsForSelectedItems()

löst folgenden Fehler aus:

(UICollectionView, numberOfItemsInSection: Int)-> Int does not have a member named 'indexPathsForSelectedItems'

Bitte teilen Sie mir mit, ob ich die falsche Methode verwende oder ob Sie zusätzliche Daten benötigen, um einen angemessenen Überblick über das Problem zu erhalten.

ANTWORTE

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
            }
        }
    }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage