Wie richtig ich das Array geladen werden (Bild, image2, image3) Bilder aus meiner Klasse Modell in collectionCell?Verwendung Klasse/Struct in collectionCell innerhalb collectionCell für zukünftige Passdaten
Die Klasse selbst Modell wie folgt aussieht:
class Model {
var image: String
var image2: String
var image3: String
var images: [String] = []
var images2: [String] = []
var images3: [String] = []
var ref: FIRDatabaseReference!
init(snapshot: FIRDataSnapshot) {
ref = snapshot.ref
let value = snapshot.value as! NSDictionary
let snap = value["hall1"] as? NSDictionary
let snap2 = value["hall2"] as? NSDictionary
let snap3 = value["hall3"] as? NSDictionary
image = snap?["qwerty"] as? String ?? ""
image2 = snap2?["qwerty"] as? String ?? ""
image3 = snap3?["qwerty"] as? String ?? ""
if let post1 = snap as? [String: AnyObject] {
for (_, value) in post1["images"] as! [String: AnyObject] {
self.images.append(value as! String)
}
}
if let post2 = snap2 as? [String: AnyObject] {
for (_, value) in post2["images"] as! [String: AnyObject] {
self.images2.append(value as! String)
}
}
if let post3 = snap3 as? [String: AnyObject] {
for (_, value) in post3["images"] as! [String: AnyObject] {
self.images3.append(value as! String)
}
}
}
}
In meinem collectionCell nur das erste Bild geladen, verstehe ich im Grunde, warum, wie ich es verstehe auf die Tatsache zurückzuführen ist, dass sd_setImage zeigt keine Arrays an (korrigiere mich, wenn ich falsch liege), aber wie ich es beheben kann, kann nicht herausfinden.
-Code des collectionCell:
class CollectionViewCell11: UICollectionViewCell, UICollectionViewDelegate, UICollectionViewDataSource {
var imagess: [Model] = []
@IBOutlet weak var collectionView: UICollectionView!
var vc1: ViewController?
override func awakeFromNib() {
super.awakeFromNib()
collectionView.delegate = self
collectionView.dataSource = self
}
func collectionView(_ collectionView: UICollectionView, numb erOfItemsInSection section: Int) -> Int {
return imagess.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CollectionViewCell12
cell.imageView.sd_setImage(with: URL(string: imagess[indexPath.item].image))
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if vc1 != nil {
let vc2 = vc1!.storyboard?.instantiateViewController(withIdentifier: "ViewController2") as! ViewController2
vc2.photo = [imagess[indexPath.item]]
let backItem = UIBarButtonItem()
backItem.title = ""
vc1!.navigationItem.backBarButtonItem = backItem
vc1!.navigationController?.pushViewController(vc2, animated: true)
}
}
}
Um Ich brauche zu verwenden nur die Klasse Modell, weil sie eine andere Anordnung von Bildern enthalten, die ich den nächsten Controller für Scroll-Bild anzuzeigen, zu planen.
was von ** self.parent gemeint ** – onpro
in diesem Fall die Eltern würde CollectionViewCell11, so dass Sie selbst nennen würde?. Übergeordnetes Element von Ihrem neuen ViewController, um über CollectionViewCell11 auf das Array zuzugreifen –