我正在填充来自UITableView
的{{1}}中的单元格,我对如何最好地将我需要的数据传输到CoreData
(即DetailController
的问题提出疑问显示何时敲击单元格。
目前在填充viewController
时,我使用传递给单元格的UITableViewCell
从核心数据中检索相应的indexPath
。在这个阶段,我只使用来自托管对象的一些信息更新单元格(即名称,年龄,性别)。
完全填充managedObject
后,我想允许用户选择UITableView
并显示UITableViewCell
,以显示更深入的信息(即姓名,年龄,性别,职业) ,重量,高度等。)点击单元格后,我使用DetailController
转换为新呈现的-prepareForSegue
。
"发件人"对于segue是DetailController
(子类),但我只用最初显示在较小单元格中所需的信息填充了它。我应该
UITableViewCell
子类并存储所有数据
我需要,UITableViewCell
答案 0 :(得分:5)
使用我们在objective-c中使用的Model View Controller模式您的视图永远不会知道您的数据模型。这意味着您的UITableViewCell
不应具有存储数据模型中对象的任何属性。单元格应该只有标签和视图作为属性,视图控制器使用-tableView:cellForRowAtIndexPath
方法或类似方法中的模型填充数据
在准备segue时,您将UITableViewCell
对象作为发件人。您可以使用以下方法找到单元格的索引路径:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
NSIndexPath * selectedIndexPath = [self.tableView indexPathForCell:sender];
...
然后,您可以使用此索引路径再次从核心数据中提取模型对象,并将其设置为下一个视图控制器上的属性,或者将模型对象向前传递所需的任何操作