自定义细胞重复

时间:2015-11-14 14:36:45

标签: ios swift uitableview xcode7

我有一个应用程序,其中有一个嵌入在ViewController中的tableview,每当我导航到另一个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)
}

我正在使用swift,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)

        }
    }

2 个答案:

答案 0 :(得分:1)

问题出在您的viewDidAppear方法中。每次控制器出现时,您都会从后台获取数据,将它们附加到数组并重新加载tableview。例如,将用于获取数据的代码移动到viewDidLoad,然后重复"重复"应该不见了。

答案 1 :(得分:0)

您是否检查过数据源marathonRaces是否获得了更多条目?

您可能会在每个后退导航中添加更多条目,如果是这样,请在添加之前添加或删除所有条目。