传递核心数据值的最佳方法

时间:2014-08-02 18:19:18

标签: core-data tableview fetch

我开发了一个带有三个视图控制器的高尔夫记分录制应用程序 第一个视图控制器是一个表视图控制器,它通过一个添加圆形按钮来播放每一轮。当您单击高尔夫球轮(单元格)时,它会将您带到一个新的视图控制器,该控制器具有与该轮的每个孔相关的18个按钮。当您单击一个孔按钮(即孔1)时,它会将您推送到一个新的第三视图控制器,您可以在其中记录诸如该孔的参数,码数,以及文本字段之类的值以输入每个玩家得分(所有这些都是通过核心数据存储的。)

这是我的困境。我使用核心数据来保存所有数据。我很好奇在第三个视图控制器上使用第一个视图控制器的信息填充文本标签的最佳方法。现在我使用prepareForSegue函数创建新视图控制器的实例,然后通过prepareForSegue函数设置新视图控制器的属性。

这只是花花公子。但是,当我到达第三个View控制器时,我想用一些与该轮相对应的数据填充我的一些字段。并且因为第三个VC不是表视图,所以我在如何确保从正确的相应indexPath中获取正确的数据时迷失了方向。现在我只是将tableview中的值传递给第二个VC中的属性,然后再将这些属性传递给第三个VC。如果我不在tableview VC上,有没有办法在特定索引路径上执行获取请求?

我希望这是有道理的。

1 个答案:

答案 0 :(得分:0)

您的数据结构可能看起来像这样(或应该):

Course (.rounds) <------>> Round (.course)
Round   (.holes) <------>> Hole  (.round)

按下孔列表中的一行,只需将选择Hole传递给最终视图控制器即可。如果您需要来自任何上级实体的任何信息,只需使用点表示法。

NSString *nameOfCourse = self.hole.round.course.name;

无需获取,无需与任何其他视图控制器通信!这有多膨胀?