我正在制作一个正在运行的应用程序,并希望用户在他们的城市中看到比赛/马拉松。单击单元格时,用户将导航到具有马拉松详细信息的新视图控制器。但是按下后退按钮返回到桌子后,细胞会重复。例如,如果在表格上滚动它将显示单元格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作为我的后端。
答案 0 :(得分:0)
我认为你必须在更新tableview之前初始化你的数组。
当你点击后退按钮时,tableview可能会刷新。
因此,制作一些使ur数组为new的代码,然后调用tableview.reloadData()