2015-10-11 5 views
0

У меня есть табличный вид с 3 разделами. В последнем разделе у меня две ячейки. Нет, когда я нажимаю на последнюю ячейку (Segue на ViewController) и возвращаюсь к таблице. Моя последняя ячейка точно совпадает с предыдущей ячейкой (раздел 2 строка 0). Когда я закрываю приложение и возвращаюсь к таблице, все в порядке. Я много искал, но ничего не нашел об этом.UITableView дублированный элемент в последней секции

Вот мой код:

else if indexPath.section == 2 { 

     let cell2:SecondTwoWayCellTableViewCell = self.tableView.dequeueReusableCellWithIdentifier("SecondTwoWayCell") as!SecondTwoWayCellTableViewCell 



       if indexPath.row == 0 && DoubleMatchIdentifierHome[4] != "" { 



        let currentPlayerHome1 = CoreDataManager.defaultListener().getPlayer(date, identifier: DoubleMatchIdentifierHome[4]) as! Player 
        let currentPlayerHome2 = CoreDataManager.defaultListener().getPlayer(date, identifier: DoubleMatchIdentifierHome[5]) as! Player 

        let currentPlayerAway1 = CoreDataManager.defaultListener().getPlayer(date, identifier: DoubleMatchIdentifierAway[4]) as! Player 
        let currentPlayerAway2 = CoreDataManager.defaultListener().getPlayer(date, identifier: DoubleMatchIdentifierAway[5]) as! Player 


        cell2.identifierPlayerHome1.text  = DoubleMatchIdentifierHome[4] 
        cell2.playerHome1.text    = currentPlayerHome1.name! 
        cell2.identifierPlayerHome2.text  = DoubleMatchIdentifierHome[5] 
        cell2.playerHome2.text    = currentPlayerHome2.name! 

        cell2.identifierPlayerAway1.text  = DoubleMatchIdentifierAway[4] 
        cell2.playerAway1.text    = currentPlayerAway1.name! 
        cell2.identifierPlayerAway2.text  = DoubleMatchIdentifierAway[5] 
        cell2.playerAway2.text    = currentPlayerAway2.name! 

        cell2.score.text   = ("\(matches[18].scoreHome!):\(matches[18].scoreAway!)") 

        return cell2 
      } 

      else if indexPath.row == 1 && DoubleMatchIdentifierHome[6] != "" { 




        let currentPlayerHome1 = CoreDataManager.defaultListener().getPlayer(date, identifier: DoubleMatchIdentifierHome[6]) as! Player 
        let currentPlayerHome2 = CoreDataManager.defaultListener().getPlayer(date, identifier: DoubleMatchIdentifierHome[7]) as! Player 

        let currentPlayerAway1 = CoreDataManager.defaultListener().getPlayer(date, identifier: DoubleMatchIdentifierAway[6]) as! Player 
        let currentPlayerAway2 = CoreDataManager.defaultListener().getPlayer(date, identifier: DoubleMatchIdentifierAway[7]) as! Player 




        cell2.identifierPlayerHome1.text  = DoubleMatchIdentifierHome[6] 
        cell2.playerHome1.text    = currentPlayerHome1.name! 
        cell2.identifierPlayerHome2.text  = DoubleMatchIdentifierHome[7] 
        cell2.playerHome2.text    = currentPlayerHome2.name! 

        cell2.identifierPlayerAway1.text  = DoubleMatchIdentifierAway[6] 
        cell2.playerAway1.text    = currentPlayerAway1.name! 
        cell2.identifierPlayerAway2.text  = DoubleMatchIdentifierAway[7] 
        cell2.playerAway2.text    = currentPlayerAway2.name! 

        cell2.score.text   = ("\(matches[19].scoreHome!):\(matches[19].scoreAway!)") 

        return cell2 

      } 

     return cell2 






    } 

ответ

0

Проблема может быть, что вы разворачивать ячейку в начале кода, помещая:

пусть CELL2: SecondTwoWayCellTableViewCell = self.tableView.dequeueReusableCellWithIdentifier (» SecondTwoWayCell "), как! SecondTwoWayCellTableViewCell

вы делаете, если проверить вещи ... но вы не чистите клетку и помните, что вы повторно ячейки с идентификатором ... Итак, что вам нужно сделать, это просто очистить ячейку после DEQUE ячейку, поставив что-то вроде:

CELL2 = SecondTwoWayCellTableViewCell()

и затем «! если indexPath.row == 0 & & DoubleMatchIdentifierHome [4] = ""{ "

поэтому ячейка всегда переходит на стандартную величину, если она не попадает ни в какое, если.

+0

Если я ставлю CELL2 = SecondTwoWayCellTableViewCell() после DEQUEUE я получу пустую ячейку :( – user3143691

+0

Сейчас он работает, но я не знаю, почему :) Я написал CELL2 = self.tableView.dequeueReusableCellWithIdentifier («SecondTwoWayCell»), как ! SecondTwoWayCellTableViewCell после var cell2 = ..... и, наконец, он работает. Кто-нибудь знает, почему? У меня такой же код для раздела 0, и он работает без добавления! – user3143691

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