导航到viewcontroller时自定义UITableViewCells重复

时间:2015-11-07 16:13:12

标签: swift uitableview xcode7

我正在制作一个正在运行的应用程序,并希望用户在他们的城市中看到比赛/马拉松。单击单元格时,用户将导航到具有马拉松详细信息的新视图控制器。但是按下后退按钮返回到桌子后,细胞会重复。例如,如果在表格上滚动它将显示单元格1,单元格2,单元格3,单元格4,单元格1,单元格2,单元格3,单元格4,并且每次我使用表格导航到视图控制器时将重复更多。 该表的代码是:

//MARK: TableView
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return exhibitions.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let singleCell: marathonTableViewCell = tableView.dequeueReusableCellWithIdentifier("marathonCell") as! marathonTableViewCell


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




    return singleCell


}



func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {



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


}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if(segue.identifier == "marathonCardDetail"){

        var upcoming: marathonDetailViewController = segue.destinationViewController as! marathonDetailViewController

        let indexPath = self.marathonsTableView.indexPathForSelectedRow!



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

        let marathonEvents = currentCell.marathonName.text


        upcoming.nameMarathon = marathonEvents

        self.marathonsTableView.deselectRowAtIndexPath(indexPath, animated: true)




    }
}

我使用swift,Xcode 7和Parse作为我的后端。

1 个答案:

答案 0 :(得分:0)

我认为你必须在更新tableview之前初始化你的数组。

当你点击后退按钮时,tableview可能会刷新。

因此,制作一些使ur数组为new的代码,然后调用tableview.reloadData()