J'essaie de transmettre une image d'un contrôleur de vue à une UICollectionViewCell chaque fois que je me connecte à UICollectionViewController. Normalement, je voudrais juste utiliser le code suivant pour passer la variable directement à UICollectionViewController.Transmettre la variable directement à UICollectionViewCell à partir d'un autre contrôleur de vue
let myCollectionViewController = MyCollectionViewController(collectionViewLayout: UICollectionViewFlowLayout())
myCollectionViewController.selectedImage = myImageView?.image
navigationController?.pushViewController(myCollectionViewController, animated: true)
Cependant, j'ai mon UICollectionViewCell et sous-classé ont mis en place la cellule comme suit:
import UIKit
class myCollectionViewCell: UICollectionViewCell {
let imageView:UIImageView = {
let iv = UIImageView()
iv.backgroundColor = .red
iv.contentMode = .scaleAspectFill
iv.clipsToBounds = true
return iv
}()
var selectedImage: UIImage? {
didSet {
self.imageView.image = selectedImage
}
}
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Comment puis-je passer directement mon image directement à mon sous-classe UICollectionViewCell pendant la Segue?
Vous ne pouvez pas passer une image directement à une cellule dans la Segue; la cellule n'existe pas encore. Vous pouvez passer la valeur au contrôleur de vue et il peut l'utiliser quand il crée la cellule – Paulw11
Donc, je dois initialiser l'imageView dans myCollectionViewController plutôt que de l'initialiser dans la cellule sous-classée? – Tom
vous pouvez le faire à partir de la méthode cellForRowAt de la vue de collection. –