UINavigationController
Наследование
-
NSObject
-
UIResponder
-
UIViewController
-
UINavigationController
-
ABPeoplePickerNavigationController
-
EKEventEditViewController
-
GKFriendRequestComposeViewController
-
GKGameCenterViewController
-
GKMatchmakerViewController
-
GKTurnBasedMatchmakerViewController
-
MFMailComposeViewController
-
MFMessageComposeViewController
-
UIImagePickerController
-
UIVideoEditorController
-
NSObject
-
UIResponder
-
UIViewController
-
UINavigationController
-
ABPeoplePickerNavigationController
-
EKEventEditViewController
-
GKFriendRequestComposeViewController
-
GKGameCenterViewController
-
GKMatchmakerViewController
-
GKTurnBasedMatchmakerViewController
-
MFMailComposeViewController
-
MFMessageComposeViewController
-
UIImagePickerController
-
UIVideoEditorController
Соответствует
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 2.0 и позже.
UINavigationController
класс реализует специализированный контроллер представления, управляющий навигацией иерархического содержания. Этот интерфейс навигации позволяет представить Ваши данные эффективно и упрощает для пользователя перемещаться по тому содержанию. Вы обычно используете этот класс как есть, но в iOS 6 и позже можно разделить на подклассы для настройки поведения класса.
Экраны, представленные интерфейсом навигации обычно, подражают иерархической организации Ваших данных. На каждом уровне иерархии Вы обеспечиваете надлежащий экран (управляемый пользовательским контроллером представления) для отображения содержания на том уровне. Рисунок 1 показывает пример интерфейса навигации, представленного приложением Настроек в Средстве моделирования iOS. Первый экран дарит пользователю список приложений, содержащих предпочтения. Выбор приложения показывает отдельные настройки и группы настроек для того приложения. Выбор группы приводит к большему количеству настроек и т.д. Для всех кроме корневого представления контроллер навигации обеспечивает кнопку «Назад», чтобы позволить пользователю пятиться иерархия.
Объект контроллера навигации управляет в настоящее время выводимыми на экран экранами с помощью штабеля навигации, представленного массивом контроллеров представления. Первый контроллер представления в массиве соответствует корневому контроллеру представления. Последний контроллер представления в массиве представляет контроллер представления, в настоящее время выводимый на экран. Вы изменяете штабель с помощью методов объекта контроллера навигации. Как правило, Вы добавляете контроллер представления к вершине штабеля с помощью pushViewController:animated:
метод. Продвижение контроллера представления выводит на экран свое представление в интерфейсе навигации и обновляет средства управления навигацией соответственно. Вы обычно продвигаете контроллер представления в ответ на пользовательские действия в контроллере текущего представления — например, в ответ на пользователя, касающегося строки в таблице.
Для удаления контроллера представления из штабеля программно Вы вызываете popViewControllerAnimated:
метод. Кнопка «Назад» в панели навигации также демонтирует самый верхний контроллер представления и является большим количеством распространенного способа вытолкать контроллеры представления от штабеля. В iOS 7 и позже, пользователь может также вытолкать самый верхний контроллер представления путем инициирования сильно ударения от крайнего левого края экрана.
Объект контроллера навигации говорит его делегату об изменениях в активном контроллере представления. Если Вы хотите выполнить дополнительную установку или задачи очистки, связанные с продвижением и сованием контроллеров представления, можно присвоить делегата в контроллере навигации. Объект делегата, который Вы обеспечиваете, должен соответствовать UINavigationControllerDelegate
протокол.
Для получения дополнительной информации о том, как интегрировать контроллеры навигации в Ваше приложение, см. Каталог Контроллера Представления для iOS. Для получения дополнительной информации о контроллерах представления см. Руководство по программированию Контроллера Представления для iOS.
Представления контроллера навигации
Контроллер навигации является контейнерным контроллером представления — т.е. он встраивает содержание других контроллеров представления в себе. Вы получаете доступ к представлению контроллера навигации от view
свойство. Это представление включает панель навигации, дополнительную панель инструментов и довольное представление, соответствующее самому верхнему контроллеру представления. Рисунок 2 показывает, как эти представления собраны для представления полного интерфейса навигации. (В этом числе интерфейс навигации далее встраивается в интерфейсе панели вкладок.) Несмотря на то, что содержание панели навигации и изменений представлений панели инструментов, сами представления не делают. Фактически изменяющееся единственное представление является пользовательским довольным представление, предоставленное самым верхним контроллером представления на штабеле навигации.
Контроллер навигации управляет созданием, конфигурацией и дисплеем панели навигации и дополнительной панели навигации. Допустимо настроить связанные с появлением свойства панели навигации, но Вы никогда не должны изменять frame
, bounds
, или alpha
значения непосредственно. Если Вы разделяете на подклассы UINavigationBar
, необходимо инициализировать контроллер навигации с помощью initWithNavigationBarClass:toolbarClass:
метод. Чтобы скрыть или показать панель навигации, используйте navigationBarHidden
свойство или setNavigationBarHidden:animated:
метод.
Контроллер навигации создает содержание панели навигации динамично с помощью объектов элемента навигации (экземпляры UINavigationItem
класс), связался с контроллерами представления на штабеле навигации. Для изменения содержания панели навигации необходимо поэтому сконфигурировать элементы навигации пользовательских контроллеров представления. Для получения дополнительной информации об элементах навигации, посмотрите Ссылку класса UINavigationItem.
Обновление панели навигации
Когда пользователь изменяет контроллер представления верхнего уровня, контроллер навигации обновляет панель навигации соответственно. В частности контроллер навигации обновляет элементы кнопки панели, выведенные на экран в каждой из трех позиций панели навигации: левый, средний, и правильный. Элементы кнопки панели являются экземплярами UIBarButtonItem
класс. Можно создать элементы с пользовательским содержанием или создать стандартные системные элементы в зависимости от потребностей. Для получения дополнительной информации о том, как создать элементы кнопки панели, посмотрите Ссылку класса UIBarButtonItem.
Для всех кроме корневого контроллера представления на штабеле навигации элемент на левой стороне панели навигации обеспечивает навигацию назад для предыдущего контроллера представления. Содержание этой крайней левой кнопки определяется следующим образом:
Если новый контроллер представления верхнего уровня имеет пользовательский левый элемент кнопки панели, тот элемент выведен на экран. Для указания пользовательского левого элемента кнопки панели установите
leftBarButtonItem
свойство элемента навигации контроллера представления.Если контроллер представления верхнего уровня не имеет пользовательского левого элемента кнопки панели, но элемент навигации предыдущего контроллера представления имеет объект в
backBarButtonItem
свойство, панель навигации выводит на экран тот элемент.Если пользовательский элемент кнопки панели не указан ни одним из контроллеров представления, кнопка «Назад» по умолчанию используется, и ее заголовок установлен в значение
title
свойство предыдущего контроллера представления — т.е. контроллер представления каждый уравнивает на штабеле. (Если существует только один контроллер представления на штабеле навигации, никакая кнопка «Назад» не выведена на экран.)
Контроллер навигации обновляет середину панели навигации следующим образом:
Если новый контроллер представления верхнего уровня имеет пользовательское представление заголовка, дисплеи панели навигации, просматривающие вместо представления заголовка по умолчанию. Для указания пользовательского представления заголовка установите
titleView
свойство элемента навигации контроллера представления.Если никакое пользовательское представление заголовка не установлено, панель навигации выводит на экран метку, содержащую заголовок контроллера представления по умолчанию. Строка для этой метки обычно получается из
title
свойство самого контроллера представления. Если Вы хотите вывести на экран различный заголовок, чем тот, связанный с контроллером представления, установиtitle
свойство элемента навигации контроллера представления вместо этого.
Контроллер навигации обновляет правую сторону панели навигации следующим образом:
Если новый контроллер представления верхнего уровня имеет пользовательский правильный элемент кнопки панели, тот элемент выведен на экран. Для указания пользовательского правильного элемента кнопки панели установите
rightBarButtonItem
свойство элемента навигации контроллера представления.Если никакой пользовательский правильный элемент кнопки панели не указан, панель навигации ничего не выводит на экран на правой стороне панели.
Контроллер навигации обновляет панель навигации каждый раз изменения контроллера вида сверху. Таким образом эти изменения происходят каждый раз, когда контроллер представления продвинут на штабель или вытолкан от него. При анимации нажатия или популярной работы контроллер навигации так же анимирует изменение в содержании панели навигации.
Расцветкой панели навигации управляют свойства самой панели навигации. Используйте tintColor
свойство, чтобы изменить цвет оттенка элементов в панели и использовать barTintColor
свойство для изменения цвета оттенка самой панели. Панели навигации не наследовали свой цвет оттенка от в настоящее время выводимого на экран контроллера представления.
Для получения дополнительной информации о панели навигации, посмотрите Ссылку класса UINavigationBar.
Отображение панели навигации
Объект контроллера навигации управляет дополнительной панелью инструментов на своей иерархии представления. Когда выведено на экран, эта панель инструментов получает свой текущий набор элементов от toolbarItems
свойство активного контроллера представления. Когда активный контроллер представления изменяется, контроллер навигации обновляет элементы панели инструментов для соответствия нового контроллера представления, анимируя новые элементы в позицию в надлежащих случаях.
Панель навигации скрыта по умолчанию, но можно показать, что она для навигации взаимодействует через интерфейс путем вызова setToolbarHidden:animated:
метод Вашего объекта контроллера навигации. Если не все Ваши контроллеры представления поддерживают элементы панели инструментов, Ваш объект делегата может вызвать этот метод для переключения видимости панели инструментов во время последующего нажатия и популярных операций. Использовать пользовательское UIToolbar
подкласс, используйте initWithNavigationBarClass:toolbarClass:
метод для инициализации контроллера навигации.
Сохранение состояния
В iOS 6 и позже, если Вы присваиваете значение этому контроллеру представления restorationIdentifier
свойство, это пытается сохранить дочерние контроллеры представления на своем штабеле навигации. Контроллер навигации запускается у основания штабеля и перемещается вверх, кодируя каждый контроллер представления, также имеющий допустимую строку идентификатора восстановления. Во время следующего цикла запуска контроллер навигации восстанавливает сохраненные контроллеры представления к штабелю навигации в том же порядке, что они были сохранены.
Дочерние контроллеры представления, которые Вы продвигаете на штабель навигации, могут использовать те же идентификаторы восстановления. Контроллер навигации автоматически хранит дополнительную информацию, чтобы гарантировать, что тракт восстановления каждого дочернего элемента уникален.
Для получения дополнительной информации, о как сохранение состояния и реставрационные работы, см. Руководство по программированию Приложения для iOS.
-
Инициализирует и возвращает недавно создаваемый контроллер навигации.
Объявление
Swift
init(rootViewController
rootViewController
: UIViewController)Objective C
- (instancetype)initWithRootViewController:(UIViewController *)
rootViewController
Параметры
rootViewController
Контроллер представления, находящийся у основания штабеля навигации. Этот объект не может быть экземпляром
UITabBarController
класс.Возвращаемое значение
Инициализированный контроллер навигации возражает или
nil
если была проблема, инициализирующая объект.Обсуждение
Это - удобный метод для инициализации получателя и продвижения корневого контроллера представления на штабель навигации. Каждый штабель навигации должен иметь по крайней мере один контроллер представления для действия как корень.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
Инициализирует и возвращает недавно создаваемый контроллер навигации, использующий Ваши пользовательские подклассы панели.
Объявление
Swift
init(navigationBarClass
navigationBarClass
: AnyClass?, toolbarClasstoolbarClass
: AnyClass?)Objective C
- (instancetype)initWithNavigationBarClass:(Class)
navigationBarClass
toolbarClass:(Class)toolbarClass
Параметры
navigationBarClass
Укажите пользовательское
UINavigationBar
подкласс Вы хотите использовать, или указатьnil
использовать стандартUINavigationBar
класс.toolbarClass
Укажите пользовательское
UIToolbar
подкласс Вы хотите использовать, или указатьnil
использовать стандартUIToolbar
класс.Возвращаемое значение
Инициализированный контроллер навигации возражает или
nil
если была проблема, инициализирующая объект.Обсуждение
Используйте этот метод инициализации, если Вы хотите использовать пользовательскую панель навигации или подклассы панели инструментов с контроллером навигации. При использовании этого метода Вы ответственны за добавление корневого контроллера представления прежде, чем представить контроллер навигации на экране.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 5.0 и позже.
-
topViewController
СвойствоКонтроллер представления наверху штабеля навигации. (только для чтения)
Объявление
Swift
var topViewController: UIViewController! { get }
Objective C
@property(nonatomic, readonly, retain) UIViewController *topViewController
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
См. также
-
visibleViewController
СвойствоКонтроллер представления связался с в настоящее время видимым представлением в интерфейсе навигации. (только для чтения)
Объявление
Swift
var visibleViewController: UIViewController! { get }
Objective C
@property(nonatomic, readonly, retain) UIViewController *visibleViewController
Обсуждение
В настоящее время видимое представление может принадлежать или контроллеру представления наверху штабеля навигации или к контроллеру представления, представленному модально поверх самого контроллера навигации.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
См. также
-
viewControllers
СвойствоКонтроллеры представления в настоящее время на штабеле навигации.
Объявление
Swift
var viewControllers: [AnyObject]!
Objective C
@property(nonatomic, copy) NSArray *viewControllers
Обсуждение
Корневой контроллер представления в индексе
0
в массиве контроллер вида сзади в индексеn-2
, и лучший контроллер в индексеn-1
, гдеn
число элементов в массиве.Присвоение нового массива контроллеров представления к этому свойству эквивалентно вызову
setViewControllers:animated:
метод сanimated
набор параметра кNO
false
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
Заменяет контроллеры представления, которыми в настоящее время управляет контроллер навигации с указанными элементами.
Объявление
Swift
func setViewControllers(_
viewControllers
: [AnyObject]!, animatedanimated
: Bool)Objective C
- (void)setViewControllers:(NSArray *)
viewControllers
animated:(BOOL)animated
Параметры
viewControllers
Контроллеры представления для размещения в штабеле. Порядок грудь-спина контроллеров в этом массиве представляет новый порядок нижней части к вершине контроллеров в штабеле навигации. Таким образом последний элемент, добавленный к массиву, становится главным элементом штабеля навигации.
animated
Если
YES
true
, анимируйте продвижение или сование контроллера вида сверху. ЕслиNO
false
, замените контроллеры представления без любых анимаций.Обсуждение
Используйте этот метод, чтобы обновить или заменить штабель контроллера текущего представления, не продвигая или выталкивая каждый контроллер явно. Кроме того, этот метод позволяет Вам обновить набор контроллеров, не анимируя изменения, которые могли бы быть надлежащими во время запуска, когда Вы хотите возвратить контроллер навигации предыдущему состоянию.
Если анимации включены, этот метод решает который тип перехода выполнить на основе ли последний элемент в
items
массив уже находится в штабеле навигации. Если контроллер представления в настоящее время находится в штабеле, но не является самым верхним элементом, этот метод использует популярный переход; если это - самый верхний элемент, никакой переход не выполняется. Если контроллер представления не находится на штабеле, этот метод использует переход нажатия. Только один переход выполняется, но когда тот переход заканчивается, все содержание штабеля заменяется новыми контроллерами представления. Например, если контроллеры A, B, и C находятся на штабеле, и Вы устанавливаете контроллеры D, A, и B, этот метод использует популярный переход, и получающийся штабель содержит контроллеры D, A, и B.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
-
Продвигает контроллер представления на штабель получателя и обновляет дисплей.
Объявление
Swift
func pushViewController(_
viewController
: UIViewController, animatedanimated
: Bool)Objective C
- (void)pushViewController:(UIViewController *)
viewController
animated:(BOOL)animated
Параметры
viewController
Контроллер представления для продвижения на штабель. Этот объект не может быть контроллером панели вкладок. Если контроллер представления уже находится на штабеле навигации, этот метод выдает исключение.
animated
Указать
YES
true
анимировать переход илиNO
false
если Вы не хотите, чтобы был анимирован переход. Вы могли бы указатьNO
false
если Вы настраиваете контроллер навигации во время запуска.Обсуждение
Объект в
viewController
параметр становится контроллером вида сверху на штабеле навигации. Продвижение контроллера представления заставляет свое представление быть встроенным в интерфейс навигации. Еслиanimated
параметрYES
true
, представление анимировано в позицию; иначе, представление просто выведено на экран в его заключительном расположении.В дополнение к отображению представления связался с новым контроллером представления наверху штабеля, этот метод также обновляет панель навигации и панель инструментов соответственно. Для получения информации о том, как обновляется панель навигации, посмотрите Обновление Панели навигации.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
Выталкивает контроллер вида сверху от штабеля навигации и обновляет дисплей.
Объявление
Swift
func popViewControllerAnimated(_
animated
: Bool) -> UIViewController?Objective C
- (UIViewController *)popViewControllerAnimated:(BOOL)
animated
Параметры
animated
Установите это значение в
YES
true
анимировать переход. ПередачаNO
false
при установке контроллера навигации, прежде чем его представление будет выведено на экран.Возвращаемое значение
Контроллер представления, вытолканный от штабеля.
Обсуждение
Этот метод удаляет контроллер вида сверху из штабеля и делает новую вершину штабеля активным контроллером представления. Если контроллер представления наверху штабеля является корневым контроллером представления, этот метод ничего не делает. Другими словами, Вы не можете вытолкать последний элемент на штабеле.
В дополнение к отображению представления связался с новым контроллером представления наверху штабеля, этот метод также обновляет панель навигации и панель инструментов соответственно. Для получения информации о том, как обновляется панель навигации, посмотрите Обновление Панели навигации.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
Популярность все контроллеры представления на штабеле кроме корневого контроллера представления и обновлений дисплей.
Объявление
Swift
func popToRootViewControllerAnimated(_
animated
: Bool) -> [AnyObject]?Objective C
- (NSArray *)popToRootViewControllerAnimated:(BOOL)
animated
Параметры
animated
Установите это значение в
YES
true
анимировать переход. ПередачаNO
false
при установке контроллера навигации, прежде чем его представление будет выведено на экран.Возвращаемое значение
Массив контроллеров представления, представляющих элементы, вытолканные от штабеля.
Обсуждение
Корневой контроллер представления становится контроллером вида сверху. Для получения информации о том, как обновляется панель навигации, посмотрите Обновление Панели навигации.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
Популярность просматривает контроллеры, пока указанный контроллер представления не наверху штабеля навигации.
Объявление
Swift
func popToViewController(_
viewController
: UIViewController, animatedanimated
: Bool) -> [AnyObject]?Objective C
- (NSArray *)popToViewController:(UIViewController *)
viewController
animated:(BOOL)animated
Параметры
viewController
Контроллер представления, что Вы хотите быть наверху штабеля. Этот контроллер представления должен в настоящее время быть на штабеле навигации.
animated
Установите это значение в
YES
true
анимировать переход. ПередачаNO
false
при установке контроллера навигации, прежде чем его представление будет выведено на экран.Возвращаемое значение
Массив, содержащий контроллеры представления, вытолканные от штабеля.
Обсуждение
Для получения информации о том, как обновляется панель навигации, посмотрите Обновление Панели навигации.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
interactivePopGestureRecognizer
СвойствоУстройство распознавания жеста, ответственное за сование контроллера вида сверху от штабеля навигации. (только для чтения)
Объявление
Swift
var interactivePopGestureRecognizer: UIGestureRecognizer! { get }
Objective C
@property(nonatomic, readonly) UIGestureRecognizer *interactivePopGestureRecognizer
Обсуждение
Контроллер навигации устанавливает это устройство распознавания жеста на своем представлении и использует его для сования самого верхнего контроллера представления от штабеля навигации. Можно использовать это свойство, чтобы получить устройство распознавания жеста и связать его с поведением других устройств распознавания жеста в пользовательском интерфейсе. При связывании устройств распознавания жеста удостоверьтесь, что они распознают, что их жесты одновременно гарантируют, что устройствам распознавания жеста дают шанс обработать событие.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 7.0 и позже.
-
navigationBar
СвойствоБар навигации, управляемый контроллером навигации. (только для чтения)
Объявление
Swift
var navigationBar: UINavigationBar { get }
Objective C
@property(nonatomic, readonly) UINavigationBar *navigationBar
Обсуждение
Допустимо настроить появление панели навигации с помощью методов и свойств
UINavigationBar
класс, но Вы никогда не должны изменятьframe
,bounds
, илиalpha
значения или изменяют его иерархию представления непосредственно. Чтобы показать или скрыть панель навигации, необходимо всегда делать так через контроллер навигации путем измененияnavigationBarHidden
свойство или вызовsetNavigationBarHidden:animated:
метод.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
Наборы, скрыта ли панель навигации.
Объявление
Swift
func setNavigationBarHidden(_
hidden
: Bool, animatedanimated
: Bool)Objective C
- (void)setNavigationBarHidden:(BOOL)
hidden
animated:(BOOL)animated
Параметры
hidden
Указать
YES
true
скрыть панель навигации илиNO
false
показать его.animated
Указать
YES
true
если Вы хотите анимировать изменение в видимости илиNO
false
если Вы хотите, чтобы панель навигации сразу появилась.Обсуждение
Для анимированных переходов продолжительность анимации указана значением в
UINavigationControllerHideShowBarDuration
постоянный.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
См. также
-
hidesBarsOnTap
СвойствоБулево значение, указывающее, позволяет ли контроллер навигации скрываться его панелей с помощью жеста касания.
Объявление
Swift
var hidesBarsOnTap: Bool
Objective C
@property(nonatomic, readwrite, assign) BOOL hidesBarsOnTap
Обсуждение
Когда значение этого свойства
YES
true
, контроллер навигации переключает сокрытие и показ его панели навигации и панели инструментов в ответ на иначе необработанное касание в предметной области. Значение по умолчанию этого свойстваNO
false
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
hidesBarsOnSwipe
СвойствоБулево значение, указывающее, скрывает ли панель навигации свои панели в ответ на сильно ударить жест.
Объявление
Swift
var hidesBarsOnSwipe: Bool
Objective C
@property(nonatomic, readwrite, assign) BOOL hidesBarsOnSwipe
Обсуждение
Когда это свойство установлено в
YES
true
, восходящее сильно ударяет, скрывает панель навигации и панель инструментов. Нисходящее сильно ударяет, показывает обе панели снова. Если панель инструментов не имеет никаких элементов, это остается видимым даже после сильно ударения. Значение по умолчанию этого свойстваNO
false
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
hidesBarsWhenVerticallyCompact
СвойствоБулево значение, указывающее, скрывает ли контроллер навигации свои панели в вертикально компактной среде.
Объявление
Swift
var hidesBarsWhenVerticallyCompact: Bool
Objective C
@property(nonatomic, readwrite, assign) BOOL hidesBarsWhenVerticallyCompact
Обсуждение
Когда значение этого свойства
YES
true
, контроллер навигации скрывает свою панель навигации и панель инструментов, когда это переходит к вертикально компактной среде. После возврата вертикально регулярной среде контроллер навигации автоматически показывает обе панели снова. Кроме того, необработанные касания в предметной области заставляют контроллер навигации показывать обе панели снова. Значение по умолчанию этого свойстваNO
false
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
hidesBarsWhenKeyboardAppears
СвойствоБулево значение, указывающее, скрывает ли контроллер навигации свои панели, когда появляется клавиатура.
Объявление
Swift
var hidesBarsWhenKeyboardAppears: Bool
Objective C
@property(nonatomic, readwrite, assign) BOOL hidesBarsWhenKeyboardAppears
Обсуждение
Когда это свойство установлено в
YES
true
, появление клавиатуры заставляет контроллер навигации скрывать свою панель навигации и панель инструментов. Значение по умолчанию этого свойстваNO
false
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
navigationBarHidden
СвойствоБулево значение, указывающее, скрыта ли панель навигации.
Объявление
Swift
var navigationBarHidden: Bool
Objective C
@property(nonatomic, getter=isNavigationBarHidden) BOOL navigationBarHidden
Обсуждение
Если
YES
true
, панель навигации скрыта. Значение по умолчаниюNO
false
. Установка этого свойства изменяет видимость панели навигации, не анимируя изменения. Если Вы хотите анимировать изменение, используйтеsetNavigationBarHidden:animated:
метод вместо этого.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
barHideOnTapGestureRecognizer
СвойствоУстройство распознавания жеста раньше скрывало и показывало навигацию и панель инструментов. (только для чтения)
Объявление
Swift
unowned(unsafe) var barHideOnTapGestureRecognizer: UITapGestureRecognizer { get }
Objective C
@property(nonatomic, readonly, assign) UITapGestureRecognizer *barHideOnTapGestureRecognizer
Обсуждение
Это свойство содержит устройство распознавания жеста, используемое, чтобы скрыть или показать панели. Устройство распознавания жеста неактивно если
hidesBarsOnTap
свойствоYES
true
. Вы можете внести изменения в устройство распознавания жеста по мере необходимости, но не должны изменять его делегата, и Вы не должны удалять целевой объект по умолчанию и действие, прибывающие сконфигурированные с ним. Не пытайтесь заменить это устройство распознавания жеста путем переопределения свойства.При связи этого устройства распознавания жеста с одним собственным удостоверьтесь, что оба распознают, что их жесты одновременно гарантируют, что каждый имеет возможность обработать событие.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
barHideOnSwipeGestureRecognizer
СвойствоУстройство распознавания жеста раньше скрывало панель навигации и панель инструментов. (только для чтения)
Объявление
Swift
var barHideOnSwipeGestureRecognizer: UIPanGestureRecognizer { get }
Objective C
@property(nonatomic, readonly, retain) UIPanGestureRecognizer *barHideOnSwipeGestureRecognizer
Обсуждение
Это свойство содержит устройство распознавания жеста, используемое, чтобы скрыть и показать панель навигации и панель инструментов. Устройство распознавания жеста неактивно если
hidesBarsOnSwipe
свойствоYES
true
. Вы можете внести изменения в устройство распознавания жеста по мере необходимости, но не должны изменять его делегата, и Вы не должны удалять целевой объект по умолчанию и действие, прибывающие сконфигурированные с ним. Не пытайтесь заменить это устройство распознавания жеста путем переопределения свойства.При связи этого устройства распознавания жеста с одним собственным удостоверьтесь, что оба распознают, что их жесты одновременно гарантируют, что каждый имеет возможность обработать событие.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
delegate
СвойствоДелегат объекта контроллера навигации.
Объявление
Swift
unowned(unsafe) var delegate: UINavigationControllerDelegate?
Objective C
@property(nonatomic, assign) id< UINavigationControllerDelegate > delegate
Обсуждение
Можно использовать делегата навигации для выполнения дополнительных действий в ответ на изменения в интерфейсе навигации. Для получения дополнительной информации о реализации делегата, посмотрите Ссылку на протокол UINavigationControllerDelegate.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 2.0 и позже.
-
toolbar
СвойствоПользовательская панель инструментов связалась с контроллером навигации. (только для чтения)
Объявление
Swift
var toolbar: UIToolbar! { get }
Objective C
@property(nonatomic, readonly) UIToolbar *toolbar
Обсуждение
Это свойство содержит ссылку на встроенную панель инструментов, которой управляет контроллер навигации. Доступ к этой панели инструментов предоставлен исключительно для клиентов, хотящих представить лист действия от панели инструментов. Вы не должны изменять
UIToolbar
возразите непосредственно.Управление содержанием этой панели инструментов сделано через пользовательские контроллеры представления, связанные с этим контроллером навигации. Для каждого контроллера представления на штабеле навигации можно присвоить пользовательский набор элементов панели инструментов с помощью
setToolbarItems:animated:
методUIViewController
.Видимостью этой панели инструментов управляют
toolbarHidden
свойство. Панель инструментов также повинуетсяhidesBottomBarWhenPushed
свойство в настоящее время видимого контроллера представления и скрывает и показывает себя автоматически по мере необходимости.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
Изменяет видимость встроенной панели инструментов контроллера навигации.
Объявление
Swift
func setToolbarHidden(_
hidden
: Bool, animatedanimated
: Bool)Objective C
- (void)setToolbarHidden:(BOOL)
hidden
animated:(BOOL)animated
Параметры
hidden
Указать
YES
true
скрыть панель инструментов илиNO
false
показать его.animated
Указать
YES
true
если Вы хотите, чтобы панель инструментов была анимирована на или от экрана.Обсуждение
Можно использовать этот метод для анимации изменений в видимости встроенной панели инструментов.
Вызов этого метода с
animated
набор параметра кNO
false
эквивалентно установке значенияtoolbarHidden
свойство непосредственно. Панель инструментов просто появляется или исчезает в зависимости от значения вhidden
параметр.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
См. также
-
toolbarHidden
СвойствоБулевская переменная, указывающая, видима ли встроенная панель инструментов контроллера навигации.
Объявление
Swift
var toolbarHidden: Bool
Objective C
@property(nonatomic, getter=isToolbarHidden) BOOL toolbarHidden
Обсуждение
Если это свойство установлено в
YES
true
, панель инструментов не видима. Значение по умолчанию этого свойстваYES
true
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.0 и позже.
-
Представляет указанный контроллер представления в интерфейсе навигации.
Объявление
Swift
func showViewController(_
vc
: UIViewController, sendersender
: AnyObject!)Objective C
- (void)showViewController:(UIViewController *)
vc
sender:(id)sender
Параметры
vc
Контроллер представления для отображения.
sender
Объект, выполнивший запрос для показа контроллера представления.
Обсуждение
Этот метод продвигает новый контроллер представления на штабель навигации похожим способом как
pushViewController:animated:
метод. Можно вызвать этот метод непосредственно, если Вы хотите, но обычно этот метод вызывают откуда-либо в иерархии контроллера представления, когда должен быть показан новый контроллер представления.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 8.0 и позже.
-
Глобальная константа, указывающая предпочтительную продолжительность при анимации панели навигации.
Объявление
Swift
let UINavigationControllerHideShowBarDuration: CGFloat
Objective C
extern const CGFloat UINavigationControllerHideShowBarDuration
Константы