The approach that I will probably take is to have a separate NSArrayController for each kind of table, and then contain the contents of one array controller based on the choice of another.
For example, let's say you have a table view A, which displays a list of available genres, so it has an array controller A, the contents of which are connected to your managed object context.
Then let's say that you have a table view B, which shows the available artists for which genre is selected in table A. This table will have its own array controller B, and the content array for controller B is connected so that the "controller key" the field in IB is set to "select" the controller key A, while the "artists" are the model key (this assumes that your Genre entity has a "many" relationship called "artists" to the Artist object).
Then you can apply the same principle to the third type of table + controller to show albums for the selected artist.
The general term for this type of setup is the โmaster part interfaceโ and is described in Apple documents at this link
Brian webster
source share