не удалось передать данные с протоколом - PullRequest
0 голосов
/ 08 ноября 2018

Привет У меня проблема с передачей данных с помощью моего пользовательского delegate, помогите всем, пожалуйста, это мой код

protocol VideoCellDelegate {
    func didSaveFavorite(for cell: SearchVideoCell)
}

, и я положил delegate внутрь SearchVideoCell

class SearchVideoCell: UICollectionViewCell {

var delegate: VideoCellDelegate?

и это моя функция внутри SearchVideoCell

@objc func handleFavorite() {
    print("Handling favorite")
    delegate?.didSaveFavorite(for: self)
}

, которую я пытался передать в SearchVideoController

class SearchVideoController: UICollectionViewController, UICollectionViewDelegateFlowLayout, VideoCellDelegate

, чем я назвал delegate, но она не работает, это только печать Handling Favorite не saving video to favorite

func didSaveFavorite(for cell: SearchVideoCell) {
    print("saving video to favorite")
}

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Возможно, вы не установили контроллер в качестве объекта делегата при создании ячейки.

// В вашем контроллере

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "VideoCell", for: indexPath) as! SearchVideoCell
cell.delegate = self
0 голосов
/ 08 ноября 2018

В вашем SearchVideoController Вы назначили делегата вашей ячейки, как показано ниже?

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

    cell.delegate = self

    return cell

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...