Как шаблон mvc реализован в пользовательском интерфейсе iOS?(представление на основе XCode temlpate) - PullRequest
1 голос
/ 18 апреля 2011

Я новичок в разработке для iPhone. На эту тему доступно много книг. Но большинство руководств для начинающих в основном касаются использования Interface Builder и не содержат информации о существующих встроенных шаблонах кода XCode или о чем-то, что могло бы помочь мне понять реализацию MVC в коде. Я обнаружил, что можно написать рабочую программу для iOS без ViewController. Ну, мне так кажется после работы с примером кода под названием ViewTransitions.

Итак, вопрос в том, почему можно избежать реализации ViewController в программе, имеющей интерфейс с кнопкой? Если ответ будет слишком длинным, не могли бы вы порекомендовать учебник или руководство по этой теме.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 19 апреля 2011

@ user697562 ответ по существу правильный: в случае ViewTransitions роль контроллера выполняет делегат приложения. Приложение практически ничего не делает - оно просто переключает между двумя представлениями, чтобы продемонстрировать несколько возможных эффектов перехода, поэтому UIViewController там на самом деле не нужен.

Обратите внимание, что во ViewTransitions также нет ничего, что вы могли бы действительно назвать модельным объектом. Если вы ищете сильный пример MVC, ViewTransitions - не лучший проект для просмотра. Другие примеры проектов, такие как TheElements, дают лучшую демонстрацию MVC в действии.

0 голосов
/ 19 июля 2016

Существует концепция, называемая делегированием.Концепция, которая помогает поддерживать MVC.Это помогает держать модель отдельно от контроллеров.Например: - UITableView / UICollectionView, который знает, как отображать данные и другие элементы пользовательского интерфейса.Но он не знает, какую ячейку отображать или какие данные отображать по определенному индексу.И вот тут происходит делегирование и объект делегата.UICollectionView обрабатывает всю часть представления, тогда как вся не-часть представления обрабатывается объектом delgate, который предоставляет необходимые данные для представления.Таким образом, делегат (обычно отдельный контроллер представления) действует как источник данных, а UICollectionView - как пользовательский рендерер.

0 голосов
/ 18 апреля 2011

в ViewTransitions есть делегат приложения, который является своего рода вашим единственным «контроллером». Даже ViewTransitions имеет:

transition.delegate = self;    

IOS немного отличается от некоторых фреймворков тем, что вы не настолько «контролируете» происходящее. Он часто использует модель делегирования, где вы устанавливаете свой код в качестве делегата, но он (IOS) находится под контролем. Тем не менее, вы можете писать в стиле MVC, просто ваш «С» не полностью отвечает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...