Навигационна лента - изглед на навигационната лента

Изпълнение:

  • Навигационната лента е реализирана директно в класа UINavigationBar.
  • Елементите за навигация са внедрени в класа UINavigationItem .
  • Елементите на бутоните на лентата са внедрени в класа UIBarButtonItem .
  • Елементите на лентата са внедрени в класа UIBarItem .

Навигационната лента е конфигурирана в Interface Builder, в раздела Навигационни ленти на инспектора на атрибутите. Не всички настройки обаче могат да бъдат направени в инспектора на атрибутите и трябва да ги правите програмно.

Съдържание на навигационната лента

След като създадете лента за навигация, или в комбинация с контролер за навигация, или като самостоятелен обект, трябва да добавите съдържание към нея. Навигационната лента може да показва левия бутон, заглавието, реда за заявка и десния бутон.

Навигационната лента показва информация от стека обекти на UINavigationItem. Във всеки един момент UINavigationItem, разположен в горната част на стека (topItem), дефинира информация за навигационната лента, като десния бутон и заявката. UINavigationItem под topItem е backItem, който осигурява бутон наляво или назад.

Можете също да добавите лентови бутони към UINavigationItem. Обикновено UINavigationItem има заглавие и едно от системните изображения. Освен това може да има десен бутон и ляв бутон, разположени на мястото на бутона „Назад“.

За да добавите тези елементи към лентата за навигация, изберете елемента от интерес в библиотеката с елементи на Interface Builder и ги плъзнете към вашата раскадка.

Поведение на навигационната лента

Основният начин за използване на навигационната лента е чрез използване на навигационния контролер (обект UINavigationController). Навигационният контролер управлява навигацията между различни екрани със съдържание за вас. Той също така автоматично създава лента за навигация и бута и изскача навигации, както е подходящо.

Можете да добавите контролер за навигация към приложението си в Interface Builder или програмно. Навигационният контролер автоматично се определя като делегат на своята навигационна лента.

Когато използвате лентата за навигация като единичен обект, задавате първоначалния вид на лентата за навигация, като създавате подходящите обекти UINavigationItem и ги добавяте към стека от обекти на лентата за навигация. Когато създавате единична лента за навигация в Interface Builder, Xcode създава асоцииран обект UINavigationItem за елементите, които плъзгате до навигационната лента.

Вие също отговаряте за управлението на стека от обекти UINavigationItem, ако използвате лентата за навигация като единичен обект. Поставяте нов елемент за навигация в стека с помощта на метода pushNavigationItem: animated: и го изваждате от стека с помощта на метода - popNavigationItemAnimated:. В допълнение към поставянето и извличането на елементи, вие също така задавате съдържание директно, като използвате свойството items или метода setItems: animated:. Можете да използвате тези методи, за да възстановите интерфейса до първоначалното му състояние, като натискате и дърпате няколко елемента за навигация наведнъж.

Задайте персонализиран делегат и използвайте този обект за проследяване на съобщенията, изпратени от навигационната лента. Делегираният обект трябва да поддържа протокола UINavigationBarDelegate. Делегираните съобщения ви позволяват да следите кога навигационните елементи са позиционирани и изскачащи от стека. Можете да използвате тези известия, за да актуализирате потребителския си интерфейс.