2017-08-26 1 views
0

Ich habe versucht, Daten von meinem UICollectionViewController zu meinem UIViewController unter dem prepareForSegue() zu übergeben. Ich kann es einfach mit einem UITableView:Übergeben von Daten mit UICollectionView

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
{ 
    if segue.identifier == "segue" 
    { 
     let detailViewController = ((segue.destination) as! DetailViewController) 
     let indexPath = self.tableView.indexPathForSelectedRow! 
     detailViewController.titleLabelText = titles[indexPath.row] 
    } 
} 

Ich habe eine Menge von Fragen und Antworten durchgesehen, und ich habe mehrere Lösungen ausprobiert, aber keiner von ihnen gearbeitet hat. Hier ist die neueste von dem, was ich versucht habe ...

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if let indexPath = self.collectionView?.indexPath(for: sender as! UICollectionViewCell) { 
     let detailViewController = segue.destination as! DetailViewController 
     detailViewController.titleLabelText = self.titles[indexPath.row] 
    } 
} 

Aber mit diesem Ich erhalte eine Fehlermeldung:

Could not cast value of type 'ProjectName.CollectionViewController' to 'UICollectionViewCell'.

Alle Ideen, wie dies zu tun?

Antwort

1

Wie der Fehler sagte, ist Ihr Absender vom Typ UICollectionViewController statt UICollectionViewCell. Ich denke, Sie machen nur einen Übergang von Ihrem collectionViewController, der Ihre collectionViewCell sein sollte, zu Ihrem viewController, überprüfen Sie es einfach und wiederholen Sie den Übergang.

0

denke ich in der Methode:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) 

Sie hinzufügen müssen:

self.performSegue(withIdentifier: "Your Segue Name", sender: self) 

Versuchen Sie es zu ändern:

self.performSegue(withIdentifier: "Your Segue Name", sender: indexPath) 

Dann Methode:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 

können Sie indexPath der Zelle direkt von sender

erhalten
Verwandte Themen