Я пытаюсь создать делегат протокола между двумя UICollectionViewController
. с кодом, который у меня есть, я не получаю никаких ошибок или предупреждений, однако я не могу заставить делегата работать. Что мне не хватает?Swift 2 - Протокол Делегат между двумя UICollectionViewControllers
Вторая коллекция Просмотреть
public protocol LettersCollectionViewDelegate: class {
func DidSelectLetter(collectioView: UICollectionView,letter: Character, resultString:String)
}
class LettersCollectionView: UICollectionViewController {
// DELEGATE
weak var delegate: LettersCollectionViewDelegate?
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let cell : UICollectionViewCell = collectionView.cellForItemAtIndexPath(indexPath)! as! LetterCellView
delegate?.DidSelectLetter(collectionView, letter: "T", resultString:"TestString")
}
}
Первая коллекция Просмотреть
class AnswerCollectionView: UICollectionViewController {
let lettersView = LettersCollectionView()
override func viewDidLoad() {
super.viewDidLoad()
self.lettersView.delegate = self
}
}
extension AnswerCollectionView: LettersCollectionViewDelegate {
func DidSelectLetter(collectioView: UICollectionView, letter: Character, resultString: String) {
print(letter)
}
}
UPDATE
Вы создаете новый экземпляр LettersCollectionView в AnsweracollectionView и задаете делегат в этом экземпляре. Это не будет экземпляр, который находится на экране. Какова связь между этими двумя контроллерами представлений? Предоставляет ли кто-нибудь другой через segue? Являются ли они оба на экране через контроллеры контейнера? – Paulw11
Спасибо .. Я попытался добавить делегата в свой основной ViewController, но все еще не получил делегата для работы – SNos
Можете ли вы объяснить взаимосвязь между двумя контроллерами представления? Используете ли вы представления контейнера в своем основном контроллере? Почему вы использовали два uicollectionview, а не два контроллера uicollectionview? – Paulw11