Как различить различные NavigationController? - PullRequest
0 голосов
/ 04 сентября 2018

Я использую несколько NavigationController в моем приложении

let navViewController = UINavigationController(rootViewController: vc)

Назначение тега

navViewController.navigationBar.tag = 10

и выбирается как

if navigationController?.navigationBar.tag == 10 {

Вместо navigationBar.tag, Разве мы не можем дифференцироваться, используя ссылку navViewController или navigationController.tag?

1 Ответ

0 голосов
/ 04 сентября 2018

Использование тегов для разграничения навигационных контроллеров нормально. Чтобы сделать код более читабельным и избежать возможных ошибок, вы можете определить теги как константы или перечисления и проверить значение константы.

Другой способ заключается в создании подкласса UINavigationController для каждого случая и проверке на соответствующий класс:

if let navController = navigationController as? CustomNavigationController {
  //your code
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...