Несколько навигационных контроллеров Swift

#ios #swift #uinavigationcontroller #uinavigationbar

Вопрос:

Я начинаю переносить приложение с Android на iOS и знакомлюсь с контроллерами навигации. Я хотел бы получить вашу помощь и вклад в следующий сценарий:

  1. Основная раскадровка:
  • Логинвьюконтроллер
  • RegisterViewController
  • Контроллер MainViewController
  1. Раскадровка администратора (упрощенная)
  • UserListTableViewController
  • UserDetailViewКонтроллер
  • Некоторые другие контроллеры просмотра доступны из списка пользователей

Возможные варианты навигации (Переходы)

  • От Входа До регистрации (Нажмите здесь, чтобы зарегистрироваться)
  • От Входа На Главную Страницу (Вход В Систему Обычного Пользователя)
  • От Входа В Список Пользователей (Вход В Систему Пользователя-Администратора)
  • От Регистрации До Учетной записи пользователя (Заполните дополнительную информацию после успешной регистрации)
  • От Главного К Списку пользователей (Администратор)
  • От Главного К пользователю (Обычный пользователь)
  • Из Списка Пользователей В Список пользователей

Моя проблема связана с кнопкой «Навигационная панель назад». Учитывая приведенные выше сегменты, я хотел бы:

  • если с помощью Входа в систему или регистрации, никаких кнопок «Назад»
  • Еще кнопка на спине

Самые сложные сценарии:

  • Пользователь-администратор входит в систему, показывает список пользователей без кнопки назад
  • Пользователь с правами администратора переходит из списка основных пользователей в список пользователей, кнопка «Показать назад» отображается в списке основных
  • Пользователь-администратор переходит из списка пользователей в список пользователей, показывает кнопку «Назад» в списке пользователей
  • Обычный пользователь переходит от основного к пользовательскому списку, показывает кнопку «Назад» в основной

Как вы можете видеть, иногда в списке пользователей не будет кнопки «Назад», а иногда в нем будет кнопка «Назад», которая возвращается к основной; А кнопка «Назад» в списке пользователей будет либо возвращаться к списку пользователей, либо к основной, в зависимости от того, откуда она была вызвана;

I’ve used IBuilder and embeded both UserList and UserDetail on their own UINavigationControllers

I have a segue from UserList to UserDetailNavigation

введите описание изображения здесь

Дело в том, что UserDetail никогда не показывает кнопку «Назад», так как это корневое представление его собственного навигатора. То же самое для списка пользователей. Должен ли я «принудительно» включать кнопку «Назад» в эти корневые представления и контролировать их поведение?

Спасибо за любые мысли!