Как получить правильный indexPath.section от кнопки в представлении коллекции, которое находится внутри табличного представления?
Я устанавливаю кнопку внутри FooterView, которая принадлежит collectionView, и это внутри TableView. Как мне получить indexPath.section от этой кнопки?
Это для новой вкладки сегментированного элемента управления. В прошлом я пытался присвоить indexPath.section переменной int и даже присвоить число константе, использовал метод prepareForReuse в ячейках для обновления ячейки, но это всегда дает мне неправильный индекс. Это меняется, пока я прокручиваю.
var currentlyActiveCellIndexPath: Int?
extension LibraryViewController {
func viewTapped(button: UIButton) {
let tapgesture = UITapGestureRecognizer.init(target: self, action: #selector(goToViewAllArticles))
button.addGestureRecognizer(tapgesture)
let tapgesture1 = UITapGestureRecognizer.init(target: self, action: #selector(goToViewAllPodcasts))
button.addGestureRecognizer(tapgesture1)
tapgesture.numberOfTapsRequired = 1
button.isUserInteractionEnabled = true
}
@objc func goToViewAllArticles(sender: UITapGestureRecognizer) {
return self.performSegue(withIdentifier: "showBrowseFromButton", sender: currentlyActiveCellIndexPath)
}
@objc func goToViewAllPodcasts(sender: UITapGestureRecognizer) {
return self.performSegue(withIdentifier: "showBrowseFromButton", sender: currentlyActiveCellIndexPath)
}
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
currentlyActiveCellIndexPath = indexPath.section
Я ожидал, что indexPath.section останется прежним, но как только я прокручиваю, он меняется, и я не могу получить правильный indexPath.section.
1 ответ
Установить тег вашей кнопки как indexPath
в cellForRowAt(:)
YourBtn.tag = indexPath.row
Теперь вы можете получить точно такой же indexPath, когда вы нажимаете на эту кнопку, если все еще не работает, оставьте комментарий!