2012-04-18 2 views
1

Название «View Controller» в программировании iOS немного запутанно, так как оно включает в себя как слова «Вид», так и «Контроллер» в модели MVC. Является ли «View Controller» фактически просто другим именем Controller (поскольку представление на самом деле в основном выполняется с помощью Interface Builder). Почему он называется «View Controller»? Это связано с тем, что этот контроллер выполняет все обновления свойств вида и обработку событий?В программировании IOS, является ли «Контроллер просмотра» фактически контроллером?

+0

Он управляет объектом UIView. –

ответ

3

Да, a UIViewController живет внутри слоя «Контроллер» MVC. Но это специальный контроллер, который контролирует и обновляет представление. Контроллеры просмотра также могут обрабатывать события, потому что они происходят от UIResponder.

Вы также можете создавать общие контроллеры путем подкласса NSObject. Например, контроллер учетных записей, который управляет учетными записями и т. Д. Фактически вы обнаружите другие классы контроллеров в SDK iOS, например. UIDocumentInteractionController.

Из Руководства программирования IOS View Controller:

Для IOS приложений, просматривать контроллеры обеспечивают жизненно важную связь между данными приложения давал и ее внешний вид. Понимание того, когда и , как использовать контроллеры представлений, имеет решающее значение для дизайна приложений iOS . Контроллеры просмотра являются традиционными объектами контроллера в парадигме проектирования Model-View-Controller, но они также делают гораздо больше. В приложениях iOS контроллеры представлений обеспечивают большую часть необходимой логики для управления основными типами приложений. Например, диспетчеры просмотра управляют представлением и удалением содержимого с экрана, а управляют переориентацией представлений в ответ на изменение настроек ориентации устройства .

2

«Контроллер» следует за контроллером. Если бы я писал контроллер для стула, я бы назвал его председателем. Поскольку UIView контролируется, имеет смысл называть его UIViewController правильно? Само представление несет ответственность только за отображение, но логика того, что отображать, зависит от его контроллера.

+0

+1 для председателя –

1

От компании Apple Docs - http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html

Класс UIViewController обеспечивает фундаментальную модель показов управления для всех IOS приложений.

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

В случае необходимости контроллер вида:

  • изменяет размеры и выкладывает свои взгляды
  • регулирует содержание взглядов
  • действуют от имени взглядов, когда пользователь взаимодействует с ними
1

Вы должны увидеть «View Controller "как" Класс, который управляет видом ".

Это классический Model View Controller pattern (MVC).

A UIViewController имеет вид UIView, и вы обновляете этот UIView в зависимости от ваших бизнес-объектов (модели) для каждого конкретного контроллера.

Кроме того, события, которые происходят на вашем UIView, отправляются обратно на ваш UIViewController для правильной обработки их.

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