View или ViewController ... оба являются представлениями? - PullRequest
1 голос
/ 19 марта 2010

В Интерфейсном Разработчике ... когда я перетаскиваю ВИД в окно документа ... и затем дважды щелкаю по нему ..., он открывается и отображает окно ВИД. (Как и ожидалось)

... но когда я перетаскиваю КОНТРОЛЛЕР ПРОСМОТРА в окно документа ... и затем дважды щелкаю по нему ... он также открывается и отображает окно VIEW. (На нем написано «вид»).

Это правильно? (Или я не совсем понимаю вещи?)

Я думал, что ПРОСМОТР - это реальный объект для рисования / перетаскивания предметов. Нет

Я думал, что КОНТРОЛЛЕР ПРОСМОТРА - это просто КОД для вашего просмотра. Нет

Ответы [ 2 ]

2 голосов
/ 19 марта 2010

У меня нет опыта работы с Interface Builder, но объект контроллера предоставляет пользовательскую логику, необходимую для привязки данных приложения к представлениям. В приложениях iPhone контроллер представления - это особый тип объекта контроллера, который вы используете для представления и управления представлениями вашего приложения.

С каждым ViewController связано свойство View, которое вы видите в конструкторе интерфейсов.

Представление, хранящееся в этом свойстве, представляет собой корневое представление для иерархии представлений контроллера представления. Всякий раз, когда вы представляете контроллер представления на экране (модально или как часть интерфейса на основе контроллера представления), это представление извлекается и отображается в окне приложения. Значение по умолчанию этого свойства nil

Каждый объект контроллера представления является единственным владельцем своего представления. Вы не должны связывать один и тот же объект представления с несколькими объектами контроллера представления.

0 голосов
/ 15 мая 2011

Apple хочет, чтобы вы следовали системе Model-View-Controller при разработке приложений, и это довольно просто и логично.

  • Модель - это ядро ​​вашего приложения. Он обрабатывает базы данных, сетевые подключения и все, что вам нужно. Это в основном пользовательские классы, которые вы создаете в Xcode.
  • Вид - это интерфейс между вашим приложением и вашими пользователями. Вы можете создать их в Интерфейсном Разработчике и поместить их в файлы NIB (желательно один просмотр каждого файла).
  • Контроллер является связующим звеном между вашим представлением и вашей моделью. Он определяет поведение и состояние представлений (кнопка включена, содержимое метки и т. Д.) В зависимости от того, что он получает от модели (например, от базы данных). Он также выполняет действия с моделью на основе событий, которые она получает от представлений, которыми она управляет (контролирует), таких как изменение записей в базе данных или изменение переменных в объектах.

Идея, стоящая за всем этим, заключается в том, что модель может использоваться на любой платформе с минимальными изменениями.

Каждый контроллер должен быть связан с одним представлением и только с одним представлением, как таблица (UITableViewController) или представление экрана (UIViewController). Вы создаете подкласс контроллера, который хотите, и добавляете его в NIB представления, с которым он связан. Вот как ты это делаешь:

  1. В NIB выберите владельца файла.
  2. В инспекторе удостоверений установите класс для контроллера представления, созданного в вашем проекте.
  3. В своем пользовательском классе контроллеров создайте IBOutlet s для каждого представления (например, deleteButton) в связанном представлении, к которому у вас должен быть доступ. Создайте и синтезируйте свойства для каждой торговой точки.
  4. Создать IBAction s для каждого события, которое вы хотите зарегистрировать (например, addButtonClicked).
  5. В NIB перетащите линию с помощью второй кнопки мыши от Владельца файла к желаемому виду розетки, а затем выберите, какое соединение вы хотите установить. Повторяйте, пока все ваши IBOutlet не будут правильно подключены.
  6. Перетащите линию с помощью дополнительной кнопки мыши из представления, в котором вы хотите зарегистрировать события, к Владельцу файла, а затем выберите, какое соединение вы хотите установить. Повторяйте, пока все ваши IBAction не будут правильно подключены.
  7. Введите свой код для контроллера.
...