如何为多对多关系创建UI?

时间:2011-08-17 01:29:13

标签: cocoa core-data

有人可以建议创建用于建立多对多关系的UI的最佳方法吗?

让我们使用上一个问题列表<< - >>中的示例患者

我可以创建两个单独的表视图,一个用于列表,另一个用于患者,这将允许用户使用两个单独创建的阵列控制器(列表和患者)创建列表和患者,一个链接到列表实体,另一个链接到患者实体。

现在,我希望能够通过创建仅显示所选列表中的患者的表视图来添加/删除列表中的患者。为此,我创建了一个链接到实体Patient的Array Controller(ListPatients),其内容集绑定到Lists.selection.patients。

现在事情从这里停止了......

如果我将按钮绑定到ListPatients.add方法,则会创建一个新患者 - 似乎无法简单地在现有患者和列表之间添加新关系。

理想情况下,我希望能够做一个下拉列表,从中选择患者。

是否有人建议如何最好地执行此操作,而无需创建新实体来表示此关系。

1 个答案:

答案 0 :(得分:0)

您需要的是交换Master-Detail视图,其中List表或Patient表在任何特定时间是Master或Detail。

List是主视图时,选择一行将使详细信息视图显示Patient关系中的所有rowList.patients个对象。当Patient是主视图时,选择一行将使详细信息视图显示List关系中的所有rowPatient.lists个对象。

您确实想要分解用户界面,以便用户始终清楚地了解两个表之间的关系。我建议使用一组四个表,每个表用于每个Master-Detail设置。这样,用户也将了解他们正在看什么。

这也可以轻松添加新对象。只需在详细信息表下放置一个add new按钮,用户就会明白单击它会将新对象添加到在主视图中选择的对象的关系中。