如何为UITableView创建详细视图以允许我编辑Core Data中的数据?

时间:2011-04-27 08:57:17

标签: iphone objective-c ios uitableview core-data

我是iOS,Objective-C的新手,之前只做了一小部分OO编程,但却享受了尝试创建这个应用程序的挑战。

应用摘要: 我有一个视图,它只是一个将信息输入核心数据数据库的表格,例如。姓名,地址和电话。然后是另一个包含表视图的视图,该视图列出了当前数据库中所有人的名字。

然而,这就是我被困的地方......

我创建了一个详细的视图,以便当用户选择表格单元格时,详细视图会加载,但我想将数据从Core Data恢复回原来输入数据的格式,以便对其进行修改/编辑,重新保存回核心数据。

这样做的最佳实践是什么?

我需要将一些数据传递给详细视图,该视图知道该怎么做,但我应该通过什么?如何告知详细视图我希望加载Core Data数据库中的哪一行数据?

我是否传递tableview indexPath.row值?这对应于我在加载详细视图时可以在CoreData中过滤掉的任何内容吗?

提前感谢任何回复的人,感谢任何从方法到在线投票的帮助

马特

2 个答案:

答案 0 :(得分:1)

我认为您可以在此处查看Apple示例代码:CoreRecipes sample code

答案 1 :(得分:0)

按照TheRonin的建议,从CoreRecipes示例代码中挑选出来,我做了以下几点。

在DetailedViewController上创建一个Core-Data DataModel对象的iVar

DataStore *enquiry;

在didSelectRowAtIndex设置Core-Data DataModel对象和详细视图控制器下的tableview视图中,

DataStore *enquiry = (DataStore *)[_fetchedResultsController objectAtIndexPath:indexPath];

ShowEnquiryDetail *detailViewController = [[ShowEnquiryDetail alloc] initWithNibName:@"ShowEnquiryDetail" bundle:nil ];

在DetailedViewController中设置数据模型对象

detailViewController.enquiry = enquiry;

然后将DetailedViewController推送到导航堆栈。

[self.navigationController pushViewController:detailViewController animated:YES];

然后在DetailedViewController上,您可以使用enquiry.name,enquiry.email等从Core-Data中的选定行访问DataModel对象中的数据......

这不是一个写得很好的答案,可能会使用不正确的术语,但希望它可以帮助我处于相同位置的人。