Я пишу свой маршрутизатор приложений так:
final class AppRouter {
let navigationController: UINavigationController
init(window: UIWindow) {
navigationController = UINavigationController()
window.rootViewController = navigationController
...
}
Я вызываю инициализатор маршрутизатора в методе application:didFinishLaunchingWithOptions:
.
Я пытался изменить его стиль (цвет, шрифт и т. Д.), Изменив его свойства, дочерние свойства, используя UINavigationBar.appearance()
Ничего не работает. Я установил translucent
в false. Только изменения раскадровки оказывают какое-либо влияние, но тогда у меня есть навигация на основе раскадровки, которой я не хочу иметь.
Я видел много сообщений об этой проблеме, ничего не работает.
Если у кого-то есть поваренная книга, работающая на новейшей iOS (в настоящее время 11.4), пожалуйста, поделитесь!
Edit:
Как я уже говорил, внесение изменений, например:
UINavigationBar.appearance().barTintColor = color
UINavigationBar.appearance().isTranslucent = false
это используется в didFinishLaunching.
или в конструкторе:
navigationController.navigationBar.barTintColor = color
Оба метода не могут установить цвет панели контроллера навигации.
Редактировать 2:
Звонки делегатов приложения:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let window = UIWindow(frame: UIScreen.main.bounds)
self.window = window
window.makeKeyAndVisible()
appRouter = AppRouter(window: window)
return true
}