iPhone - UITableViewController 和核心数据行在 tableView 中重复

Posted

技术标签:

【中文标题】iPhone - UITableViewController 和核心数据行在 tableView 中重复【英文标题】:iPhone - UITableViewController and Core Data rows repeating in tableView 【发布时间】:2011-01-28 15:07:30 【问题描述】:

我是 Cocoa 和 Core Data 的新手,遇到了一个奇怪的问题。我成功地创建了核心数据模型,导入了数据,制作了 UI(导航控制器、带有 searcDdisplayController 的 tableViewController),但现在我遇到了一个问题。如果我实现 UITableViewController(在 nib 文件中没有 UITableView),从 fetchedResultsController 获取的结果很奇怪- 行数是正确的(500 行),但它们在重复自己 - 只有 8 个不同的行。

但是,我可以通过添加 @synthesize tableView 来解决此问题;在 .m 文件中。

然后我遇到了另一个问题 - 当我单击一行并推送详细信息视图,然后单击导航控制器上的后退按钮时,tableView 中的选定行仍然被选中。

我希望我清楚出了什么问题。让我回顾一下: 如果我不放@synthesize tableView;在实现文件的顶部,该行的取消选择工作正常,但结果错误 - 8 行(共 500 行)在 tableView 中重复。 如果我把@synthesize放在文件中,tableView中的数据是正确的,但是当我用导航控制器回到tableView时没有动画。

我也尝试在 listviewcontroller 的 nib 文件中放置一个 UITableView,但结果是一样的 - 没有取消选择该行。我还尝试取消选择 viewWillAppear 委托中的行,但 indexPath of the indexPathForSelectedRownull

哦,我正在使用 NSFetchedResultsController。就像我说的 - 获取的结果是正确的,但似乎它们没有正确地馈送到 tableview (如果它没有合成的话..)

谢谢!

【问题讨论】:

【参考方案1】:

我或许能够解决您的行突出显示问题,但您需要包含一些代码示例,以便我们可以帮助您处理其他项目...

要取消选择行,您可以调用方法 [deselectRowAtIndexPath:animated:] 这将允许您在从 tableView 选择委托推送详细视图控制器之前或之后取消选择行。 Table View Reference

【讨论】:

【参考方案2】:

感谢您的回复!

嗯..我可能已经找到了解决方案,但我不确定它是否正确.. 我正在我的新类中实现 UITableViewController,但我实际上正在使用新的 UITableView (tableView2) 来获取数据。在 nib 文件中,我创建了 UITableViewController,将类名称设置为我的自定义类,但我没有将 Interface Builder 中的表视图与我新创建的 tableView2 连接起来。我希望你能理解..这很复杂,这整个东西:S

如果我做对了——如果我实现了一个 UITableViewController,我的类会自动获得一个 self.tableView?但是,就像我在问题中所说的那样,如果我不合成 .m 文件中的属性,控制器将无法自动取消选择该行..但如果我这样做了,数据不正确并且正在重复..也许在 cellForRowAtIndexPath 中存在问题,我从 self.tableView 获取单元格..但这不合逻辑:S

无论如何,现在行取消选择动画没有我的干扰,显示的数据是正确的。如果使用 NSFetchedResultsController,我怀疑 UITableViewController 有一些其他方法需要被覆盖。

你觉得我的方法不对吗?在我的自定义 UITableViewController 类中有一个新的 UITableView?

【讨论】:

以上是关于iPhone - UITableViewController 和核心数据行在 tableView 中重复的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView 委托方法的问题

iOS tableview上textView在编辑状态时,tableview自动上移的功能

iPhone 各大机型设备号

苹果手机型号对应表

在 iphone 5 和 iphone 6 中动态设置字体大小

Surface Pro4链接不上iphone手机的热点