Swift: нажмите новый навигационный контроллер от существующего навигационного контроллера (например, Facebook или Snapchat)

Как можно вытолкнуть новый навигационный контроллер из существующего навигационного контроллера, как это сделано для мгновенных статей Facebook, изображенных ниже?

В этом случае вам нужно будет создать схему контроллера представления с главным навигационным контроллером с полупрозрачной панелью навигации, которая обернет и панель вкладок Facebook, и контроллер навигации, и контроллер навигации по мгновенным статьям?

Мгновенная статья в фейсбуке

Редактировать: Добавлен пример Snapchat

1 ответ

Решение

Вы думаете о разных UINavigationBar а не UINavigationController? Я думаю, что вы уже можете изменить внешний вид бара для другого UIViewController... если это проблема, то вы можете сделать класс для UINavigationController и добавить функциональность там, чтобы изменить внешний вид панели для того, что когда-либо UIViewController в настоящее время рассматривается.

Методы делегата UINavigationController дать вам такие методы, как

func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool)

Внутри, что вы можете поставить чек, как

if viewController.isKind(of: SomeViewController.self) {
   //make this specific change for it 
} else if viewController.isKind(of: SomeOtherViewController.self) {
   //make this specific change for this other viewController
} else {
   //make this for all other
}
Другие вопросы по тегам