В моем приложении у меня есть custom CollectionViewCell. Назовем его customCell. Этот customCell содержит один заголовок, один imageView и две кнопки. Назовем его tlLbl, imgView, btn1 и btn2.Custom CollectionViewCell кнопка управления нажатием
Goal: Если я нажму на одну из кнопок, я бы хотел представить новый viewController. Этот новый viewController должен получить tlLbl и параметр imgView как параметр. Мне нужны оба, потому что я покажу ярлык и изображение в новом viewController.
Рассмотрение: Чистым решением было бы представить новый viewController в классе customCell. Передача параметров здесь не будет проблемой. Но изменить виды в классах customCell невозможно.
Хорошо, это не имеет значения. Следующее решение. Я могу обрабатывать нажатые кнопки в текущем viewController. Добавление GestureRecognizer в функции делегата collectionView «cellForItemAtIndexPath» для btn1 и btn2 должно решить эту проблему. О нет, это не решает проблему. Мой текущий код:
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let customCell:customCellClass = collectionView.dequeueReusableCellWithReuseIdentifier("customCell", forIndexPath: indexPath) as customCellClass
customCell.tlLbl.text="Test1"
customCell.imgView.image=UIImage(named: "myImg.png")
var tapRec = UITapGestureRecognizer(target: self, action: "btnTapped")
var tapRec2 = UITapGestureRecognizer(target: self, action: "btnTapped2")
customCell.btn1.addGestureRecognizer(tapRec)
customCell.btn2.addGestureRecognizer(tapRec2)
return customCell
}
//Btn tapped handler
func btnTapped() {
let vc = newViewController() //change this to your class name
self.presentViewController(vc, animated: true, completion: nil)
}
func btnTapped2() {
let vc = newViewController2() //change this to your class name
self.presentViewController(vc, animated: true, completion: nil)
}
Вопрос: Как я могу передать tlLbl и imgView от customCell к новому ViewController после нажатия кнопки в customCell. Параметр действия в UITapGestureRecognizer
var tapRec = UITapGestureRecognizer(target: self, action: "btnTapped")
не позволяет передавать свои параметры.
Мне нужна помощь. Puh ...
Можете ли вы поделиться кодом UICollectionViewDataSource? Это поможет решить эту проблему. - Dipak –
Источник данных уже доступен? Вы имеете в виду функцию cellForItemAtIndexPath? – infinity
numberOfItemsInSection и numberOfSectionsInCollectionView –