Это одна вещь, которая меня очень смущает в Какао: реализация Apple MVC (или, по крайней мере, терминология, которую они используют) сомнительна. В Какао большинство представлений фактически действуют в некоторой степени как контроллеры, поскольку шаблон MVC определяет их (просто посмотрите на UITableView - большинство его методов на самом деле являются методами контроллера). Поэтому у вас есть дополнительная концепция Apple о контроллере представления поверх того, что уже в некоторой степени является контроллером. Тот факт, что вам даже не нужно использовать UITableViewController вообще (даже с привязкой данных), в основном доказывает, что представление действует как свой собственный контроллер. В MVC нельзя иметь представление, привязанное к модели без контроллера (это целая точка контроллера в MVC).
Разработчикам Apple кажется, что «контроллер представления» (например, UITableViewController) действительно представляет собой класс помощника / менеджера несколько более высокого уровня, который управляет более низкоуровневым классом UITableView и обеспечивает несколько key дополнительные возможности , которые больше связаны с тем, как табличное представление взаимодействует с общим пользовательским интерфейсом приложения.
Кроме того, похоже, что Apple намеревается, чтобы контроллер представления фактически был больше контроллера экрана, рекомендуя только один контроллер представления на экран (возможно, это означает, что вы не можете вкладывать контроллеры представления). Я утверждаю, что называть эту концепцию контроллером представления неверно.
Пожалуйста, не стесняйтесь поправлять меня в этом, я все еще очень плохо знаком с Obj-C / Cocoa.