Я пытаюсь добавить панель приложения MDC в свое приложение, как это определено пользовательским подклассом MaterialComponents UINavigationController
.Я перехожу к краткому описанию на их странице Github :
Самый простой путь интеграции для использования панели приложения - через MDCAppBarNavigationController.Этот API является подклассом UINavigationController, который автоматически добавляет экземпляр MDCAppBarViewController к каждому представляемому на него контроллеру представления, если только панель приложения или гибкий заголовок не существует.
При использовании MDCAppBarNavigationController вы, как минимум,необходимо настроить цвет фона добавленной панели приложения с помощью делегата.
navigationController.pushViewController(<#T##viewController: UIViewController##UIViewController#>, animated: <#T##Bool#>)
// MARK: MDCAppBarNavigationControllerDelegate
func appBarNavigationController(_ navigationController: MDCAppBarNavigationController,
willAdd appBarViewController: MDCAppBarViewController,
asChildOf viewController: UIViewController) {
appBarViewController.headerView.backgroundColor = <#(UIColor)#>
}
В своей раскадровке я добавил UINavigationController
и установил его идентификатор на MDCAppBarNavigationController
вличный инспектор.
В моем контроллере корневого представления я реализую MDCAppBarNavigationControllerDelegate
:
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
title = "My app"
if let nav = navigationController as? MDCAppBarNavigationController {
print("[MyViewController] Setting delegate MDCAppBarNavigationControllerDelegate")
nav.delegate = self
}
}
// MARK: MDCAppBarNavigationControllerDelegate
func appBarNavigationController(_ navigationController: MDCAppBarNavigationController,
willAdd appBarViewController: MDCAppBarViewController,
asChildOf viewController: UIViewController) {
print("Setting app bar color")
appBarViewController.headerView.backgroundColor = .red
}
}
Когда я запускаю приложение, я вижу обычную панель навигации и метод делегата никогда не вызывается.Что я делаю не так?