Я нашел очень хороший пост по этому вопросу на Какао с любовью . Одна из ключевых идей состоит в том, чтобы представить объекты контроллера и итеративно реорганизовать дизайн, пока не будут получены классы, которые имеют одну цель каждый.
Применяя его к иерархии сложного представления, я нахожу идею иметь большую иерархию контроллеров с ограниченной областью действия, каждый очень привлекательным и практичным. Результирующий дизайн будет сходиться после нескольких итераций рефакторинга кода.
Практическое применение: Для связи контроллеров представления слева направо делегирование - как рекомендовано в документации Apple - действительно наиболее практично. Если левое представление должно реагировать на правое представление (что редко встречается в парадигме мастер / детализация), я использовал KVO, так как обычно обновления такого типа могут запускаться объектами модели, а KVO идеально подходит для одного ко многим. шаблоны общения. Я не видел использования механизма целевого действия для связи контроллера.
Обновление: Я нашел другое сообщение в блоге, посвященное этой конкретной ситуации на Какао - моя подруга , см. Также раздел комментариев этой записи. Эта публикация является немного базовой и не охватывает рабочий процесс более сложного приложения, но все же полезна для просмотра других подходов к этому виду дизайна. Кроме того, существует руководство Рэя Вендерлиха , в котором такой дизайн рассматривается на простом, хотя и практическом примере.