Как удалить разделы в представлениях коллекции

Как я могу удалить отдельные разделы из представления контроллера? У меня есть кнопка в шапке и все подключено. Просто не уверен, как я могу написать код для 3 разных разделов.

Моя модель данных

var fire = [UIImages]
var water = [UIImages]
var air = [UIImages]

var fireLabel = [String]
var waterLabel = [String]
var airLabel = [String]

Мой код конфигурации ячейки

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

    if indexPath.section == 0 {

        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(cellIdentifier, forIndexPath: indexPath) as! CollectionViewCell

        cell.fire.image = fireImages[indexPath.row]
        cell.fireLabel.text = fireNames[indexPath.row]


    return cell

    } else if indexPath.section == 1 {

        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(cellIdentifier, forIndexPath: indexPath) as! CollectionViewCell

        cell.water.image = waterImages[indexPath.row]
        cell.waterLabel.text = waterNames[indexPath.row]

        return cell

    } else {

        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(cellIdentifier, forIndexPath: indexPath) as! CollectionViewCell

        cell.air.image = airImages[indexPath.row]
        cell.airLabel.text = airNames[indexPath.row]

        return cell

    }

}

А вот мой код кнопки, он в каждом шапке. Что я хочу сделать, так это то, что когда вы нажимаете на эту кнопку, она удаляет весь этот раздел. Опять же для каждого. Но я не могу заставить его работать.

//Delete Section Button
@IBAction func deleteSectionButton(sender: UIButton) {

    //Section tag
    let section = sender.tag

    //Update data model
    fireImages.removeAtIndex(section)
    fireNames.removeAtIndex(section)

    self.collectionView?.deleteSections(NSIndexSet(index: section))

}

Я получаю эту ошибку:

*** Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Недопустимое обновление: недопустимое количество разделов. Количество разделов, содержащихся в представлении набора после обновления (3), должно быть равно количеству разделов, содержащихся в представлении набора до обновления (3), плюс или минус количество вставленных или удаленных разделов (0 вставленных, 1 удален).'

Но я не знаю, что это значит.


person v3egut    schedule 12.08.2016    source источник
comment
Вы имеете в виду выбранные строки или весь раздел?   -  person Subin K Kuriakose    schedule 12.08.2016
comment
Целый раздел.. извините за поздний ответ   -  person v3egut    schedule 12.08.2016


Ответы (1)


вы можете просто перезагрузить представление коллекции после обновления ваших данных. Он будет заполнять ваши данные пропорционально представлению коллекции.

self.collectionView.reloadData();
person xmhafiz    schedule 12.08.2016
comment
проблема в обновлении данных. У меня есть 3 массива, и я не уверен, как это будет работать на кнопке. - person v3egut; 13.08.2016
comment
Я уже объяснил вам решение для этого в другом вопросе. У вас было время его посмотреть? - person feanor07; 19.08.2016