Swift 3Свифт: Утверждение отказа при нажатии кнопки нажала
У меня есть вид таблицы с несколькими строками, каждая строка имеет кнопку (использует indexPath.row), когда кнопка нажата она перемещает строку из раздела 1 (testArray) до раздела 0 (followArray). НО, если вы используете панель поиска для поиска через testArray, и нажата кнопка строки, она сработает.
Теперь при использовании панели поиска, testArray фильтруется в новый массив называется filteredArray. Предполагается, что кнопка перемещает строку от отфильтрованногоArray до followArray.
Без поиска кнопка работает по назначению, она срабатывает только при использовании панели поиска.
Что я делаю неправильно?
Вот ERROR я получаю:
CustomCellSwift[1473:391841] *** Assertion failure in -[UITableView _endCellAnimationsWithContext:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3600.5.2/UITableView.m:1315
Новое предложение: Может иметь ничего общего с этим возникает проблема с indexPath.row из testArray и followedArray когда filteredArray заменяет вид таблицы?
код я использую:
@IBAction func followButtonClick(_ sender: UIButton!) {
// Adding row to tag
let buttonPosition = (sender as AnyObject).convert(CGPoint.zero, to: self.myTableView)
if let indexPath = self.myTableView.indexPathForRow(at: buttonPosition) {
// Change Follow to Following
(sender as UIButton).setImage(UIImage(named: "follow.png")!, for: .normal)
cell.followButton.isHidden = true
cell.followedButton.isHidden = false
// Checking wether to import from testArray or filteredArray to followedArray
if !(searchController.isActive && searchController.searchBar.text != "") {
self.myTableView.beginUpdates()
// ----- Inserting Cell to followedArray -----
followedArray.insert(testArray[indexPath.row], at: 0)
myTableView.insertRows(at: [IndexPath(row: 0, section: 0)], with: .fade)
// ----- Removing Cell from testArray -----
testArray.remove(at: indexPath.row)
let rowToRemove = indexPath.row
self.myTableView.deleteRows(at: [IndexPath(row: rowToRemove, section: 1)], with: .fade)
self.myTableView.endUpdates()
}
else {
self.myTableView.beginUpdates()
// ----- Inserting Cell to followedArray -----
followedArray.insert(filteredArray[indexPath.row], at: 0)
myTableView.insertRows(at: [IndexPath(row: 0, section: 0)], with: .fade)
// ----- Removing Cell from filteredArray -----
filteredArray.remove(at: indexPath.row)
let rowToRemove = indexPath.row
self.myTableView.deleteRows(at: [IndexPath(row: rowToRemove, section: 0)], with: .fade)
self.myTableView.endUpdates()
}
}
}