Каждый «экран с контентом» (Apple использует этот термин) должен обрабатываться как UIViewController
или, более вероятно, его подкласс. Контроллер точки зрения должен обрабатывать появление или исчезновение вида (включение / выключение экрана), поворот устройства, управление памятью, навигацию к другим контроллерам представления и так далее. Если вы создаете свой пользовательский интерфейс с IB, то каждый из этих контроллеров представления, скорее всего, будет иметь свой собственный файл .xib.
Каждый контроллер представления имеет одно представление (это свойство view
), которое действует как основное представление для каждого «экрана с контентом», к которому вы затем добавляете свои подпредставления.
UINavigationController
и UITabBarcontroller
помогут вам контролировать иерархию вашего приложения. Они действуют только как контейнеры для других контроллеров представления и не содержат никакого пользовательского интерфейса, кроме панели навигации или панели вкладок. Используя контроллер панели вкладок, вы можете иметь несколько контроллеров представления, которые действуют точно так же, как вкладки браузера. Используя контроллер навигации, вы можете иметь стековую навигацию, в которой новые контроллеры представления перемещаются справа налево и выталкиваются слева направо, когда пользователь возвращается к предыдущему контроллеру представления. Вы даже можете иметь контроллер представления внутри контроллера навигации внутри контроллера панели вкладок.
Если вы не хотите использовать панель вкладок или контроллер навигации, вы можете перемещаться по контроллерам представления, представляя их модально с помощью presentModalViewController:animated:
и отклоняя с помощью dismissModalViewControllerAnimated:
. Если вы отправите YES
для параметра анимации этих методов, вы получите анимацию, указанную свойством modalTransitionStyle
контроллера представления, представляемого или отклоняемого. Возможные анимации: слайд снизу (по умолчанию), горизонтальное переворачивание всего экрана, постепенное увеличение / уменьшение изображения и скручивание на полстраницы.
Есть также некоторые предоставляемые Apple подклассы UIViewController, которые помогают вам быстрее настроить пользовательский интерфейс, например UITableViewController
, который в основном является контроллером представления, который содержит таблицу в качестве основного вида и соответствует 'UITableView
dataSource and
протоколы делегатов, которые необходимы для определения того, как выглядит каждая ячейка и что она содержит.
На iPad есть один дополнительный контроллер контейнера UISplitViewController
и еще один способ представления новых контроллеров представления с использованием UIPopover
.