UIViewController - это класс Cocoa Touch, созданный для управления UIViews. Предполагается, что у него будет иерархия представлений, но вы «автоматически» не получите представление ( это немного неточно; см. Правку ниже ). Обычно вы получаете представления, вызывая initWithNibName на вашем контроллере представления.
Существует некоторая встроенная магия в Интерфейсном Разработчике, которая знает, что если Владельцем Файла является UIViewController (или подкласс), существует свойство, называемое видом. Вот и все.
После того, как вы связали контроллер представления и представление, контроллер представления выполняет за вас большую работу: он регистрируется как респондент для событий касания просмотра, регистрируется для уведомлений о повороте устройства (и обрабатывает их автоматически, если вы хотите ), помогает вам позаботиться о некоторых деталях анимации и обрабатывает условия нехватки памяти полуавтоматически.
Редактировать : коррекция - если вы не вызываете initWithNibName или не устанавливаете свойство представления вручную, средство получения свойства представления вызовет loadView, если представление равно nil. Реализация loadView по умолчанию увидит, если вы установили nibBundle и nibName, и попытаетесь загрузить оттуда представление (именно поэтому у вас нет для вызова initWithNibName, чаще всего), но эти свойства не установлены, он будет создавать экземпляр объекта UIView со значениями по умолчанию. Технически, да, он автоматически поставляется с собственным UIView, но большую часть времени это мало что дает.