Top.Mail.Ru
Новости Urban University

Реализация навигации с помощью UINavigationController.

Статьи Преподавателей
UINavigationController реализует паттерн "stack" (стек).

Каждый раз, когда вы перемещаетесь на новый экран, он добавляется поверх стека, а предыдущий остается под ним. Когда пользователь нажимает кнопку "Назад", верхний контроллер снимается со стека, и отображается предыдущий.
Основные элементы:

✔️Корневой контроллер (rootViewController) — это первый экран, который добавляется в стек при инициализации.

✔️Заголовок — каждая страница может иметь собственный заголовок, который будет отображаться в верхней части экрана.

✔️Кнопка "Назад" — добавляется автоматически при переходе на новый экран.

Инициализация UINavigationController:

1. Для использования UINavigationController его нужно установить в качестве корневого контроллера вашего приложения.

2. Для навигации между экранами используется метод pushViewController(_:animated:), который добавляет новый контроллер в стек.

3. Чтобы вернуться к предыдущему экрану, используется метод popViewController(animated:), который удаляет текущий контроллер из стека и возвращает пользователя на предыдущий.
Настройка панели навигацииUINavigationController предоставляет гибкие возможности для настройки панели навигации (navigation bar).

1. Изменение заголовка: Заголовок задается для каждого контроллера через свойство title self.title = "Первый экран".

2. Изменение цвета панели: Вы можете изменить цвет фона и текста кнопок: navigationController?.navigationBar.barTintColor = .blue //

3. Цвет фона navigationController?.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.white] //

4. Цвет текста Добавление кнопок в навигационную панель

❗️ Важной функцией UINavigationController является возможность добавления кнопок действий в панель навигации с помощью UIBarButtonItem.

Для возврата сразу к корневому экрану используется метод popToRootViewController(animated:). Пример возврата к корневому экрану: navigationController?.popToRootViewController(animated: true)

Это удаляет все контроллеры поверх корневого из стека.

UINavigationController — мощный инструмент для создания многослойной навигации в приложениях iOS. Он предоставляет стандартный способ перемещения между экранами, позволяя разработчикам легко управлять стеком представлений, настраивать панель навигации и добавлять кнопки действий.