Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы UIKit ссылка класса UITabBarController

Опции
Развертывание Target:

На этой странице
Язык:

UITabBarController

Наследование


Оператор импорта


Swift

import UIKit

Objective C

@import UIKit;

Доступность


Доступный в iOS 2.0 и позже.

UITabBarController класс реализует специализированный контроллер представления, управляющий интерфейсом выбора радио-стиля. Этот интерфейс панели вкладок выводит на экран вкладки у основания окна для выбора между различными режимами и для отображения представлений для того режима. Этот класс обычно используется как есть, но может быть разделен на подклассы в iOS 6 и позже.

Каждая вкладка интерфейса контроллера панели вкладок связана с пользовательским контроллером представления. Когда пользователь выбирает определенную вкладку, контроллер панели вкладок выводит на экран корневое представление соответствующего контроллера представления, заменяя любые предыдущие представления. (Пользователь касается, всегда выводят на экран корневое представление вкладки, независимо от которой была ранее выбрана вкладка. Даже если вкладка была уже выбрана, это - истина.), Поскольку выбор вкладки заменяет содержание интерфейса, тип интерфейса, которым управляют на каждой вкладке, не должен быть подобным всегда. Фактически, интерфейсы панели вкладок обычно используются или чтобы представить различные типы информации или представить ту же информацию с помощью абсолютно различного стиля интерфейса. Рисунок 1 показывает интерфейс панели вкладок, представленный приложением Часов, каждая вкладка которого представляет тип базируемой информации времени.

Панель вкладок рисунка 1The взаимодействует через интерфейс в приложении Часов image: ../Art/tabbar_compare.jpg

Вы никогда не должны получать доступ к представлению панели вкладок контроллера панели вкладок непосредственно. Для конфигурирования вкладок контроллера панели вкладок Вы присваиваете контроллеры представления, обеспечивающие корневое представление для каждой вкладки к viewControllers свойство. Порядок, в котором Вы указываете контроллеры представления, определяет порядок, в котором они появляются в панели вкладок. При установке этого свойства необходимо также присвоить значение selectedViewController свойство для указания, какой контроллер представления выбран первоначально. (Можно также выбрать контроллеры представления индексом массива с помощью selectedIndex свойство.), Когда Вы встраиваете представление контроллера панели вкладок (полученное использование наследованного view свойство) в Вашем окне приложения, контроллер панели вкладок автоматически выбирает тот контроллер представления и выводит на экран его содержание, изменяя размеры их по мере необходимости для адаптации интерфейсу панели вкладок.

Элементы панели вкладок сконфигурированы через их соответствующий контроллер представления. Для соединения элемента панели вкладок с целью контроллер создайте новый экземпляр UITabBarItem класс, сконфигурируйте его соответственно для контроллера представления и присвойте его контроллеру представления tabBarItem свойство. Если Вы не обеспечиваете пользовательский элемент панели вкладок для своего контроллера представления, контроллер представления создает элемент по умолчанию, содержащий изображение и текст от контроллера представления title свойство.

Поскольку пользователь взаимодействует с интерфейсом панели вкладок, объект контроллера панели вкладок отправляет уведомления о взаимодействиях его делегату. Делегат может быть любым объектом, который Вы указываете, но должны приспособить UITabBarControllerDelegate протокол. Можно использовать делегата, чтобы препятствовать тому, чтобы определенные элементы панели вкладок были выбраны и выполнили дополнительные задачи, когда выбраны вкладки. Можно также использовать делегата для наблюдения изменений к панели вкладок, сделанных Большим количеством контроллера навигации, описанного более подробно в Большем количестве Контроллера Навигации.

Для получения дополнительной информации об использовании контроллеров панели вкладок для создания пользовательского интерфейса см. Руководство по программированию Контроллера Представления для iOS.

Представления контроллера панели вкладок

Поскольку UITabBarController класс наследовался от UIViewController класс, контроллеры панели вкладок имеют свое собственное представление, которое доступно через view свойство. Представление для контроллера панели вкладок является просто контейнером для представления панели вкладок и представления, содержащего Ваше пользовательское содержание. Представление панели вкладок предоставляет средства управления выбором пользователю и состоит из одного или более элементов панели вкладок. Рисунок 2 показывает, как эти представления собраны для представления полного интерфейса панели вкладок. Несмотря на то, что элементы в панели вкладок и представлениях панели инструментов могут измениться, представления, управляющие ими, не делают. Только пользовательское довольное представление изменяется для отражения контроллера представления для в настоящее время выбираемой вкладки.

Рисунок 2The основные представления контроллера панели вкладок image: ../Art/tabbar_controllerviews.jpg

Можно использовать контроллеры навигации или пользовательские контроллеры представления как корневой контроллер представления для вкладки. Если корневой контроллер представления является контроллером навигации, контроллер панели вкладок вносит дальнейшие корректировки в размер выведенного на экран содержания навигации так, чтобы это не перекрывало панель вкладок. Любые представления, которые Вы выводите на экран в интерфейсе панели вкладок, должны поэтому иметь их autoresizingMask набор свойств для изменения размеров представления соответственно при любых условиях.

Больше контроллера навигации

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

Интерфейс для стандарта, Больше элемента включает кнопку Edit, позволяющую пользователю реконфигурировать панель вкладок. По умолчанию пользователю разрешают перестроить все элементы на панели вкладок. Если Вы не хотите, чтобы пользователь изменил некоторые элементы, тем не менее, можно удалить надлежащие контроллеры представления из массива в customizableViewControllers свойство.

Сохранение состояния

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

При сохранении контроллера панели вкладок присвойте уникальные идентификаторы восстановления дочерним контроллерам представления, которые Вы хотите сохранить. Исключение идентификатора восстановления от дочернего контроллера представления заставляет ту вкладку возвращаться к ее конфигурации по умолчанию. Несмотря на то, что контроллер панели вкладок сохраняет свои вкладки в том же порядке, что они перечислены в viewControllers свойство, порядок сохранения фактически не важен. Ваш код ответственен за обеспечение нового контроллера панели вкладок во время следующего цикла запуска, таким образом, Ваш код может скорректировать порядок вкладок по мере необходимости. Система сохранения состояния восстанавливает содержание каждой вкладки на основе присвоенного идентификатора восстановления, не на основе позиции вкладки.

Для получения дополнительной информации, о как сохранение состояния и реставрационные работы, см. Руководство по программированию Приложения для iOS.

  • delegate Свойство

    Делегат контроллера панели вкладок объект.

    Объявление

    Swift

    unowned(unsafe) var delegate: UITabBarControllerDelegate?

    Objective C

    @property(nonatomic, assign) id< UITabBarControllerDelegate > delegate

    Обсуждение

    Можно использовать объект делегата отследить изменения в элементах в панели вкладок и контролировать выбор вкладок. Объект делегата, который Вы обеспечиваете, должен соответствовать UITabBarControllerDelegate протокол. Значение по умолчанию для этого свойства nil.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 2.0 и позже.

  • tabBar Свойство

    Представление панели вкладок связалось с этим контроллером. (только для чтения)

    Объявление

    Swift

    var tabBar: UITabBar { get }

    Objective C

    @property(nonatomic, readonly) UITabBar *tabBar

    Обсуждение

    Вы никогда не должны пытаться управлять UITabBar сам объект хранится в этом свойстве. При попытке для этого, представление панели вкладок выдает исключение. Для конфигурирования элементов для интерфейса панели вкладок необходимо вместо этого присвоить один или несколько пользовательских контроллеров представления viewControllers свойство. Панель вкладок собирает необходимые элементы панели вкладок из контроллеров представления, которые Вы указываете.

    Представление панели вкладок, предоставленное этим свойством, только для ситуаций, где Вы хотите вывести на экран лист действия с помощью showFromTabBar: метод UIActionSheet класс.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 3.0 и позже.

  • viewControllers Свойство

    Массив корневых контроллеров представления выведен на экран интерфейсом панели вкладок.

    Объявление

    Swift

    var viewControllers: [AnyObject]?

    Objective C

    @property(nonatomic, copy) NSArray *viewControllers

    Обсуждение

    Значение по умолчанию этого свойства nil. При конфигурировании контроллера панели вкладок можно использовать это свойство для указания содержания для каждой вкладки интерфейса панели вкладок. Порядок контроллеров представления в массиве соответствует порядку дисплея в панели вкладок. Таким образом контроллер в индексе 0 соответствует крайней левой вкладке, контроллеру в индексе 1 следующая вкладка вправо, и т.д. Если существует больше контроллеров представления, чем может поместиться в панель вкладок, контроллерами представления в конце массива управляет Больше контроллера навигации, самостоятельно не включенного в этот массив.

    При изменении значения этого свойства во время выполнения контроллер панели вкладок демонтирует все старые контроллеры представления прежде, чем установить новые. Элементы панели вкладок для новых контроллеров представления сразу выведены на экран и не анимированы в позицию. При изменении контроллеров представления контроллер панели вкладок помнит объект контроллера представления, ранее выбранный и пытающийся повторно выбрать его. Если выбранный контроллер представления больше не присутствует, он пытается выбрать контроллер представления в том же индексе в массиве как предыдущий выбор. Если тот индекс недопустим, он выбирает контроллер представления в индексе 0.

    Установка этого свойства также устанавливает customizableViewControllers свойство к тому же набору контроллеров представления.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 2.0 и позже.

  • Устанавливает корневые контроллеры представления контроллера панели вкладок.

    Объявление

    Swift

    func setViewControllers(_ viewControllers: [AnyObject], animated animated: Bool)

    Objective C

    - (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated

    Параметры

    viewControllers

    Массив пользовательских контроллеров представления для отображения в интерфейсе панели вкладок. Порядок контроллеров представления в этом массиве соответствует порядку дисплея в панели вкладок, с контроллером в индексе 0, представляющем крайнюю левую вкладку, контроллер в индексе 1 следующая вкладка вправо, и т.д.

    animated

    Если YEStrue, элементы панели вкладок для контроллеров представления анимированы в позицию. Если NOfalse, изменения в элементах панели вкладок сразу отражаются.

    Обсуждение

    При присвоении нового набора контроллеров представления во время выполнения контроллер панели вкладок демонтирует все старые контроллеры представления прежде, чем установить новые. При изменении контроллеров представления контроллер панели вкладок помнит объект контроллера представления, ранее выбранный и пытающийся повторно выбрать его. Если выбранный контроллер представления больше не присутствует, он пытается выбрать контроллер представления в том же индексе в массиве как предыдущий выбор. Если тот индекс недопустим, он выбирает контроллер представления в индексе 0.

    Этот метод также устанавливает значение customizableViewControllers свойство к содержанию viewControllers параметр.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 2.0 и позже.

    См. также

    viewControllers

  • customizableViewControllers Свойство

    Подмножество контроллеров представления, которыми управляет этот контроллер панели вкладок, который может быть настроен.

    Объявление

    Swift

    var customizableViewControllers: [AnyObject]?

    Objective C

    @property(nonatomic, copy) NSArray *customizableViewControllers

    Обсуждение

    Эти средства управления свойством, какие элементы в панели вкладок могут быть перестроены пользователем. Когда пользователь касается Большего количества элемента на представлении панели вкладок, пользовательский интерфейс кажется выводящим на экран любые элементы, не соответствовавшие на основной панели вкладок. Этот интерфейс также содержит кнопку Edit, позволяющую пользователю перестраивать элементы. Только элементы, связанные контроллеры представления которых находятся в этом массиве, могут быть перестроены от этого интерфейса. Если массив пуст, или значение этого свойства nil, панель вкладок не позволяет никаким элементам быть перестроенными.

    Изменение значения viewControllers свойство (или непосредственно или использование setViewControllers:animated: метод), также изменяет значение этого свойства. Когда сначала присвоенный контроллеру панели вкладок, все контроллеры представления настраиваемы по умолчанию.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 2.0 и позже.

    См. также

    moreNavigationController

  • moreNavigationController Свойство

    Контроллер представления, управляющий Большим количеством интерфейса навигации. (только для чтения)

    Объявление

    Swift

    var moreNavigationController: UINavigationController { get }

    Objective C

    @property(nonatomic, readonly) UINavigationController *moreNavigationController

    Обсуждение

    Даже если кнопка More не выведена на экран на экране, это свойство всегда содержит допустимое Больше контроллера навигации. Можно использовать значение этого свойства, чтобы выбрать Больше контроллера навигации в интерфейсе панели вкладок или сравнить его с в настоящее время выбираемым контроллером представления.

    Не добавляйте, что объект, хранивший в этом свойстве к Вашей панели вкладок, взаимодействует через интерфейс вручную. Больше контроллера выведено на экран автоматически контроллером панели вкладок, поскольку это необходимо. Вы не должны также искать Больше контроллера навигации в массиве контроллеров представления, сохраненных в viewControllers свойство. Контроллер панели вкладок не включает Больше контроллера навигации в тот массив объектов.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 2.0 и позже.

    См. также

    customizableViewControllers

  • selectedViewController Свойство

    Контроллер представления связался с в настоящее время выбираемым элементом вкладки.

    Объявление

    Swift

    unowned(unsafe) var selectedViewController: UIViewController?

    Objective C

    @property(nonatomic, assign) UIViewController *selectedViewController

    Обсуждение

    Этот контроллер представления является тем, пользовательское представление которого в настоящее время выводится на экран интерфейсом панели вкладок. Указанный контроллер представления должен быть в viewControllers массив. Присвоение нового контроллера представления к этому свойству изменяет в настоящее время выводимое на экран представление и также выбирает надлежащую вкладку в панели вкладок. Изменение контроллера представления также обновляет selectedIndex свойство соответственно. Значение по умолчанию этого свойства nil.

    В iOS 3.0 и позже, можно использовать это свойство для выбора любого из контроллеров представления в viewControllers свойство. Это включает контроллеры представления, которыми управляет Больше контроллера навигации и чьи элементы панели вкладок не видимы в панели вкладок. Можно также использовать его для выбора самого Большего количества контроллера навигации, который доступен от moreNavigationController свойство. До iOS 3.0 Вы могли выбрать только Больше контроллера навигации и подмножество контроллеров представления, элемент панели вкладок которых был видим. Попытка установить это свойство в контроллер представления, элемент панели вкладок которого не был видим, не имела никакого эффекта.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 2.0 и позже.

    См. также

    selectedIndex

  • selectedIndex Свойство

    Индекс контроллера представления связался с в настоящее время выбираемым элементом вкладки.

    Объявление

    Swift

    var selectedIndex: Int

    Objective C

    @property(nonatomic) NSUInteger selectedIndex

    Обсуждение

    Это свойство номинально представляет индекс в массив viewControllers свойство. Однако, если выбранный контроллер представления является в настоящее время Большим количеством контроллера навигации, это свойство содержит значение NSNotFound. Установка этого свойства изменяет выбранный контроллер представления на тот в определяемом индексе в viewControllers массив. Для выбора самого Большего количества контроллера навигации необходимо изменить значение selectedViewController свойство вместо этого.

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

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 2.0 и позже.

    См. также

    selectedViewController