2015-09-07 2 views
0

В моем приложении iOS у меня есть таблица с 4 разделами. Я создал ячейку субтитров для каждого раздела и каждая ячейка имеет свой собственный идентификатор, как вы можете видеть на скриншоте:Swift: невозможно удалить ячейку с идентификатором в таблицах с разделами

enter image description here

Проблема заключается в том, что, когда мне нужно вставить ячейку в этом разделе, создав его с идентификатором, я получаю исключение утра сказать "не в состоянии из очереди ячейки с идентификатором ... Вот мой метод:

Я не знаю, что мне не хватает ... Можете ли вы помочь?

ответ

2

Вы делаете ошибку в вас коде, используя let каждой cell переменного.

Это правильный способ сделать это:

override func tableView(tableView: UITableView, 
cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    var cell:UITableViewCell? 
    var selectedStatus:String 

    switch indexPath.section { 
    case 0: 
     cell = tableView.dequeueReusableCellWithIdentifier("OpenTasks", 
      forIndexPath: indexPath) as! UITableViewCell 
     selectedStatus = "Aperti" 
     break 
    case 1: 
     cell = tableView.dequeueReusableCellWithIdentifier("ClosedTasks", 
      forIndexPath: indexPath) as! UITableViewCell 
     selectedStatus = "Chiusi" 
     break 
    case 2: 
     cell = tableView.dequeueReusableCellWithIdentifier("ExpiredTasks", 
      forIndexPath: indexPath) as! UITableViewCell 
     selectedStatus = "Scaduti" 
     break 
    case 3: 
     cell = tableView.dequeueReusableCellWithIdentifier("SuspendedTasks", 
      forIndexPath: indexPath) as! UITableViewCell 
     selectedStatus = "Sospesi" 
     break 
    default: 
     cell = tableView.dequeueReusableCellWithIdentifier("", 
      forIndexPath: indexPath) as! UITableViewCell 
     selectedStatus = "" 
     break 

    } 

    let task = self.organizedTasks.items[selectedStatus]![indexPath.row] 
    cell?.textLabel?.text = task.titolo 
    cell?.detailTextLabel?.text = task.priorita 
    return cell! 

}

2

Ну, во-первых, это похоже на катастрофу подхода к использованию tableview. Во-вторых, ваш первый идентификатор на скриншоте - OpenTask (единственное), но ваш код ищет OpenTasks (множественное число).

Надеется, что это помогает

+0

Хорошо, я исправил его ... но проблемы, кажется, тот факт, что я поставил точку зрения таблицы как статические ячейки потому что это был единственный вариант, когда я увидел меню «Разделы» ... Я не знаю, почему это не работает с этим. –

+0

Во-вторых, почему это катастрофа? Что я сделал так неправильно? Я только следил за учебником ... :( –

+0

Можете ли вы опубликовать ссылку на учебник, я не вижу, как этот подход может быть полезным. У вас есть другой дизайн для каждой ячейки? Причина, по которой я спрашиваю, заключается в том, что я полагаю, что может быть другой экран, загружаемый в зависимости от выбранногоStatus? Если бы вы могли предоставить некоторую информацию о том, что вы пытаетесь достичь, то я мог бы разработать более – Devster101

Смежные вопросы