我有两个UITableView控制器,A和B.如果用户点击表A的第一个单元格,则用户将被重定向到包含10个单元格的表B.如果用户单击表A的单元格2,则用户将被重定向到具有1个单元格的表B.
理论
我观察到的错误是这样的: 首次点击表A的第一行,然后点击表A的第二行时,表格B显示10个单元格。这些单元格中的9个不可点击,并且第一个单元格与应该显示的唯一单元格相同(但是其他9个单元格的布局不是可单击的单元格)。只有当单击后退按钮并再次单击表A的第二行时,才能在表B中正确显示1个单元格。
实践
我相信其他人遇到了同样的错误(UITableView only sending data to Detail View Controller on Second Try)。但是,反馈是针对Objective C的,所以我不知道该怎么做。
我的segue的代码是:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "viewOverviewArticle" {
if let indexPath = self.tableView.indexPathForSelectedRow {
let recentObject = self.fetchedResultsController.objectAtIndexPath(indexPath)
let controller = segue.destinationViewController as! ArticleAnalysis
controller.analysisItem = recentObject
}
}
}
假设我确实遇到与UITableView only sending data to Detail View Controller on Second Try相同的问题,我的问题归结为:
如何确保点击表格中的行时触发的segue具有最新数据?
答案 0 :(得分:0)
将用于删除旧保存数据的命令从viewWillAppear移至viewWillDisappear - 修复了该错误。