Вы объявили indexPath
как глобальную переменную, и ее значение равно NSIndexPath(row: 0, section: 0)
, как вы сказали.
в comments(_:)
функции, которую вы использовали indexPath.row
, но это row
0
так это первый комментарий к посту.
Вам не нужно устанавливать tapgesture
для кнопки cell
.
В homeViewCell
вы должны создать IBAction
для кнопки и закрытия вызова, когда он сработал ->
class homeViewCell: UICollectionViewCell {
public var didTapComment: (() -> Void)?
@IBAction func didTapCommentButton(_ sender: UIButton) {
didTapComment?()
}
}
Установить действие didTapComment
в cellForItemAt
вот так ->
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! homeViewCell
cell.didTapComment = { [weak self] in
let vc = CommentViewController()
vc.dataArray = dataArray[indexPath.row]["comments"].array
self?.navigationController!.pushViewController(vc, animated: true)
}
let url = dataArray[indexPath.row]["thumbnail_images"]["medium"]["url"].stringValue
cell.imageArticle.sd_setImage(with: NSURL(string: url) as URL?, placeholderImage:UIImage(named: "empty.png"))
cell.nametag.text = String(htmlEncodedString:dataArray[indexPath.row]["tags"][0]["title"].stringValue)
cell.nametagg.text = String(htmlEncodedString:dataArray[indexPath.row]["categories"][0]["title"].stringValue)
cell.fbButton.addTarget(self, action: #selector(homeController.fbClick), for: .touchUpInside)
cell.commentButton.setTitle("\(dataArray[indexPath.row]["comment_count"].stringValue) comments", for: .normal)
cell.leaveComment.addTarget(self, action: #selector(homeController.leavecomment), for: .touchUpInside)
cell.contentline.text = String(htmlEncodedString:dataArray[indexPath.row]["excerpt"].stringValue)
return cell
}
}
Удалить подписки;
cell.commentButton.addTarget(self, action: #selector(homeController.comment), for: .touchUpInside)
строка из cellForItemAt
@objc func comment(_ sender: Any)
функция
let indexPath = NSIndexPath(row: 0, section: 0)