-1
votes

Image de passage de CollectionviewCell qui est situé TableViewCell

Je demande de l'aide pour déterminer la bonne approche

Lorsque je clique sur la photo, j'ai besoin de passer du texte et d'elle à la nouvelle VC, mais le problème est que le projet a une excellente structure de profondeur p>

La cellule réside dans le CollectionView code>, qui se trouve dans le TableViewCell code> p>

Comment puis-je implémenter correctement le transfert? (Le nombre de cellules est généré automatiquement) p>

Une autre complication est que le code de la cellule avec lequel je travaille réside dans une autre cellule. P>

celles-ci. Le transfert d'informations doit également être écrit en elle. P>

import UIKit
import moa

class RealPhotoInfoTableViewCell: UITableViewCell {

    @IBOutlet private weak var MyCollection: UICollectionView!

    var model: RealPhoto!

    func setCollectionViewDataSourceDelegate(dataSourceDelegate: UICollectionViewDataSource & UICollectionViewDelegate, forRow row: Int) {
        MyCollection.delegate = self
        MyCollection.dataSource = self
        MyCollection.reloadData()
    }
}

extension RealPhotoInfoTableViewCell: UICollectionViewDelegate, UICollectionViewDataSource {
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        print(model?.data.count as Any)
        return model?.data.count ?? 0
    }


    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "RPhotoCell", for: indexPath) as! RealPhotoCollectionViewCell

        cell.realPhotoImage.moa.url = model?.data[indexPath.row].photo

        return cell
    } 
}


1 commentaires

3 Réponses :


1
votes

Ajouter un VaR

delegate?.sendData(image)


3 commentaires

Merci, j'ai essayé de faire comme vous le décrivez mais cela ne sort pas. Je vais mettre à jour la question, s'il vous plaît jeter un oeil.


@ Сева cell.delegate = auto devrait être à l'intérieur de la tableView Cellfrowat pas la collection


ça ne marche toujours pas. Dans la première VC où j'ai une vue de table, j'ai prescrit realpfotocell.delegate = auto et avoir une erreur Impossible d'attribuer la valeur de type 'DétacherViewController' pour taper "ImagesViewController"



0
votes

Vous avez deux options: On est SH_KHAN Répondre à l'aide de la délégation.

ou vous pouvez utiliser des observateurs de notification.

Cette question a été posée avant ...


0 commentaires

0
votes

Vous pouvez utiliser le protocole de délégué dans ce cas. Vous pouvez mettre en œuvre ce protocole. Veuillez trouver ci-après un exemple de code pour cela.

protocol ImageSelectionDelegate {
    func imageClicked(imageURL: String)
}

//Class A
class A : ImageSelectionDelegate{
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        //your existing code
        cell.delegate = self
    }
    //Implement that protocol
    func imageClicked(imageURL: String){
        //You will get url for tapped image
    }
}

class RealPhotoInfoTableViewCell{
    weak var delegate : ImageSelectionDelegate? = nil
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        delegate.imageClicked(model?.data[indexPath.item].photo)
    }
}


0 commentaires