1

Я новичок в разработке iphone. Там доступно много книг по этой теме. Но большинство руководств для новичков в основном связаны с использованием интерфейса Builder и не имеют информации о существующих встроенных шаблонах кода XCode или что-то, что могло бы помочь мне понять реализацию MVC в коде. Я обнаружил, что можно писать рабочую программу iOS без ViewController. Ну, мне кажется, что после работы с образцом кода называется ViewTransitions.Как реализован шаблон mvc в пользовательском интерфейсе iOS? (view-based XCode temlpate)

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

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

ответ

-1

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

transition.delegate = self;  

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

+1

'UIViewController' для вас много работают, но вы, конечно, не обязаны их использовать. Нет причин, по которым вы не можете использовать свой собственный полностью настраиваемый контроллер представлений, если хотите. Тем не менее, вы закончите переписывание необычного количества кода Apple. – kubi

+0

Я не уверен, что это правильное слово, но это зависит от приложения. Вероятно, это хороший учебный опыт, написавший простое приложение для образовательных целей без UIViewController. В результате, скорее всего, UIViewController не будет делать столько, сколько вы думали. – ax123man

+0

@ user697562 И это именно то, что я сделал недавно. После некоторого поиска в Интернете я нашел этот пример: [link] (http://tungchingkai.blogspot.com/2008/05/two-versions-of-hello-world-sdk-vs-open.html). Затем я создал оконный проект iOS и удалил все источники и NIB, все вещи, за исключением нескольких файлов, которые имели довольно простой смысл для меня. Я также удалил ссылку на NIB из файла plist. Мне пришлось изменить структуру программы из-за использования UIApplicationMain, но это не имеет значения. Приложение iOS с окном работает без контроллера и даже без NIB-файлов. –

1

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

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

0

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

Смежные вопросы