My searchBarがアクティブでテキストがある場合、セルを削除できますが、削除されたセルが空白のままになると、再度読み込まれません。ここで私はこのコードが私のdeleteActionです。 cellForRowAtためsearcBarにテキストがあるときにtableViewを読み込むことができません
if self.searchController.isActive && self.searchController.searchBar.text != "" {
context.delete(filteredArray[indexPath.row])
tableView.reloadData()
self.appDelegate.saveContext()
do { people = try context.fetch(Person.fetchRequest()} catch { print("Fetching Failed !!")}
} else {
context.delete(people[indexPath.row])
self.appDelegate.saveContext()
do { people = try context.fetch(Person.fetchRequest())} catch { print("Fetching Failed !!")}
tableView.reloadData()
}
とコード..
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as UITableViewCell!
let person = people[indexPath.row]
if searchController.isActive && searchController.searchBar.text != "" {
cell?.textLabel?.text = filteredArray[indexPath.row].name
if filteredArray[indexPath.row].isChecked {
cell?.accessoryType = .checkmark
} else {
cell?.accessoryType = .none
}
} else {
cell?.textLabel?.text = person.name
if person.isChecked {
cell?.accessoryType = .checkmark
} else {
cell?.accessoryType = .none
}
}
cell?.backgroundColor = UIColor.clear // loading color
return cell!
}
そして、ここではスクリーンショットです。
スクリーンショットを追加する? –
2つのスクリーンショットを追加しました –
'reloadData()'の代わりに 'beginUpdates()'と 'endUpdates()'を使ってみてください – jjatie