Я пытаюсь получить indexPath.row нажатой кнопки для действия удаления и выполнить переход к следующему контроллеру для подтверждения.
У меня есть collectionView со списком студентов, где есть кнопка в ячейке, где, если я нажимаю на кнопку, она должна выполнить переход к контроллеру для подтверждения действия. Проблема теперь, я не могу, кажется, получить indexPath. Я провел некоторые исследования и подобные посты, которые были найдены здесь . Мне удалось выполнить до 6 шага, когда я попытался ввести self.collectionView.indexPathForCell(cell)
. Ошибка показала
Неоднозначная ссылка на элемент 'collectionView (_: numberOfItemsInSection:)'
Делегат
protocol myCellDelegate: AnyObject {
func deletePressed(cell: myCells)
}
class myCells : UICollectionViewCell{
@IBOutlet weak var studentName: UILabel!
@IBOutlet weak var deleteButton: UIButton!
weak var delegate: myCellDelegate?
@IBAction func deleteClicked(_ sender: Any) {
delegate?.deletePressed(cell: self)
}
}
ViewController
class RoomDetailViewController: UIViewController ,UICollectionViewDelegate,UICollectionViewDataSource,myCellDelegate {
func deletePressed(cell: myCells) {
let indexPath = self.collectionView.indexPathForCell(cell)
}
var selectedCell = 0
var students = ["Brandon","Brenda","Louise","Angela","Arthur"]
override func viewDidLoad() {
super.viewDidLoad()
customBackButton()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.students.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "myCell", for: indexPath) as! myCells
cell.studentName.text = students[indexPath.item]
selectedCell = indexPath.row
return cell
}
}
Мне известно, что по этой теме indexPath
было много сообщений, но ни один из них не смог решить мою проблему. Кто-нибудь знает, что пошло не так?