Завершение редактирования после того, как все в разделе UITableView было удалено - PullRequest
0 голосов
/ 10 сентября 2018

Мой проект содержит таблицу. Это табличное представление состоит из 2 разделов. Первый раздел содержит одну ячейку, которая не редактируется. Второй раздел заполняется массивом данных.

Есть кнопка, которая запускает режим редактирования и позволяет пользователю удалять контент из второго раздела.

Я пытаюсь выйти из режима редактирования, когда второй раздел пуст, чтобы я мог выбрать ячейку в первом разделе (эстетические цели)

Мой код выглядит следующим образом (упрощенный, а не реальный код):

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
    data.remove(at: indexPath.row)
    tableView.deleteRows(at: [indexPath], with: .fade)
    if(data.count==0) {
        self.tableView.setEditing(false, animated: true)
        self.tableView.selectRow(at: IndexPath(row: 0, section: 0), animated: false, scrollPosition: .top)
    }

Это приводит ко всевозможным странным ошибкам. Что, согласно документации, ожидается:

Вы не должны вызывать setEditing: animated: в рамках реализации этого метода. Если по какой-либо причине вы должны вызвать ее после задержки, используя executeSelector: withObject: afterDelay: метод.

Это работает, но я чувствую, что это было бы хакерским решением. Мне не понятно, почему я не должен заканчивать редактирование, когда все удалено. Может кто-нибудь объяснить это? Или, может быть, какие-нибудь альтернативы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...