У меня странная ситуация, которую я просто не могу исправить.У меня есть tableView с 2 разделами.Оба раздела имеют одинаковую CustomTableViewCell (ShareActivityCustomTableViewCell.swift).
В каждой ячейке есть кнопка UIB (кнопка пользовательского переключателя).
Проблема
Когдапользователь нажимает на кнопку пользовательского переключателя в секции 1, ячейка удаляется из секции 1 и помещается в секцию 0. Эта часть процесса работает нормально.
Однако, как только перезагрузится tableView, и пользовательПри нажатии на тот же пользовательский переключатель в разделе 0 приложение вылетает, потому что индекс выходит за пределы допустимого диапазона.Это было бы вне диапазона, потому что когда пользователь нажимает на пользовательский переключатель, он вызывает неверную цель.Он должен вызвать:
@IBAction func toggleSwitchSection0Tapped(_ sender: UIButton)
Но вместо этого вызывает старую цель:
@IBAction func toggleSwitchTapped(_ sender: UIButton)
Я не могу понять, почему это происходит, так как tableView перезагружается нормально, ячейки меняются местами какожидается (от 1 до 0)
Мой код в cellForRowAtIndex довольно прост, со следующей целью, добавленной в пользовательский переключатель в зависимости от раздела: cellForRowAtIndex в Разделе 0:
cell.toggleSwitch.tag = indexPath.row
cell.toggleSwitch.addTarget(self, action: #selector(ShareListVC.toggleSwitchSection0Tapped), for: .touchUpInside)
И cellForRowAtIndex в Разделе 1:
cell1.toggleSwitch.addTarget(self, action: #selector(ShareListVC.toggleSwitchTapped), for: .touchUpInside)
Интересно, когда появляется список tableView и в разделе 0 есть ячейки, правильная цель вызывается, когда пользователь нажимает пользовательский переключатель в разделе 0.
Любая помощь или совет будет высоко ценится .... спасибо.