Используя Почтовое приложение Apple как пример; притворитесь, что это использует Базовые Данные. Когда Вы касаетесь почтового ящика, он показывает Вам все сообщения в той учетной записи. Таким образом, контроллер сделал запрос выборки на все сообщения в той учетной записи.
Затем Вы касаетесь сообщения и развертываете один уровень глубже, теперь Вы просматриваете единственное сообщение. Это единственное сообщение было, вероятно, передано от контроллера списка сообщений, но - можно также нажать треугольники в верхнем правом углу для перемещения через все сообщения в тот же почтовый ящик. Это означает, что контроллеру представления для просмотра единственного электронного письма также нужен тот же самый список сообщений.
Таким образом, Вы могли вырезать и вставить логику запроса выборки от представления списка, но это не DRY/don't-repeat-yourself.
Какие-либо предложения для лучшей практики в решении этой проблемы?
Создайте объект для управления своими сообщениями, а затем взаимодействуйте с этим объектом, чтобы получить сообщения, которые вам нужны для любого из ваших контроллеров представления. Это также позволит вам чтобы переключиться с CoreData без изменения логики вашего контроллера представления, если вы решили сделать это позже.