2015-11-14 4 views
0

У меня есть приложение, которое имеет табличное представление, встроенное в ViewController, и всякий раз, когда я перехожу к другому ViewController и перехожу обратно в представление таблицы, ячейки повторяются при прокрутке. Есть ли у кого-нибудь советы о том, как предотвратить это? Текущий код Tableview является:Пользовательские ячейки, повторяющиеся

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return marathonRaces.count 
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let singleCell: marathonTableViewCell = tableView.dequeueReusableCellWithIdentifier("marathonCell") as! marathonTableViewCell 

    singleCell.marathonName.text = marathonRaces[indexPath.row] 
    singleCell.entry.text = "\(entryNumber[indexPath.row])" 
    singleCell.entries.text = "\(entires[indexPath.row])" 
    singleCell.length.text = "\(length[indexPath.row])" 

    return singleCell 
} 

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    let indexPath = self.marathonsTableView.indexPathForSelectedRow! 

    let currentCell = marathonsTableView.cellForRowAtIndexPath(indexPath) as! marathonTableViewCell 

    let marathonEvents = currentCell.marathonName.text 

    self.performSegueWithIdentifier("marathonDetail", sender: self) 
} 

Я использую быстрый, xcode7, и разобрать, как мой бэкэндом

только соответствующий код в viewDidAppear будет:

var query = PFQuery(className: “Marathons") 
    query.orderByAscending("end") 
    query.findObjectsInBackgroundWithBlock { (marathons, error:NSError?) -> Void in 
     if(error == nil){ 
     //success 

      for marathon in marathons! { 
      self.marathonRaces 
      .append(marathon[“marathonName"] as! String) 
      self.entry.append(marathon[“entryNumber"] as! Int) 
      self.entries.append(marathon[“entries"] as! Int) 
      self.length.append(marathon[“length"] as! Int) 



      } 

      self.marathonsTableView.reloadData() 

     }else { 
     print(error) 

     } 
    } 
+1

Что означает «повторение» в «представлении таблицы, когда ячейки повторяются при прокрутке»? – zaph

+0

ли массив 'marathonRaces' имеет дублирующие элементы? – Deva

+0

, если ваш массив имеет 3 элемента, вы будете клетками 3 ячейки с 4 ярлыками каждый !!!! и 3 ярлыка будут иметь одинаковый текст во всех ячейках !!!! Это то, что вы назвали повторением? –

ответ

1

Проблема в вашем методе viewDidAppear. Каждый раз, когда появляется контроллер, вы извлекаете данные из фона, добавляете их в свои массивы и перезагружаете tableview. Например, переместите код для извлечения данных в viewDidLoad, и «повторение» должно исчезнуть.

+0

Спасибо Я провел часы прибегая к помощи и попробовать другими вещи – Ace

0

Вы проверили чтобы узнать, набирает ли источник данных marathonRaces больше записей?

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

+0

Как бы проверить, добавлено ли больше записей, я не верю, что они добавляются, поскольку marathonRaces - это массив, в который данные добавляются Анализировать Запрос – Ace

+0

вара marathonRaces = [String]() входа вара = [Int]() записей вара = [Int]() длиной вара = [Int]() – Ace

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