问题描述
我正在使用以下方法将 Colors.xcassets 中的自定义颜色(具有两个颜色值,一个用于浅色,一个用于深色模式)分配给导航栏:
[self.navigationController.navigationBar setBarTintColor: ...;
。
由于某些原因,导航栏仅采用深色模式的颜色值,即使在应用程序启动或切换为浅色模式时也是如此。它始终使用深色的蓝色:
当我将此颜色设置为其他对象时,它的工作原理与应该工作的一样。由于没有找到描述此问题的线程,因此我对如何解决此问题一无所知。它发生在iOS13和iOS14中。
预先感谢
巴斯蒂安
解决方法
创建两种颜色,例如navTint
和navBack
并如下设置。请注意,我将它们设置为导航栏和工具栏。
UINavigationController * nav = ... whatever your nav controller may be ...;
nav.navigationBar.tintColor = [UIColor colorNamed:@"navTint"];
nav.navigationBar.barTintColor = [UIColor colorNamed:@"navBack"];
nav.toolbar.tintColor = [UIColor colorNamed:@"navTint"];
nav.toolbar.barTintColor = [UIColor colorNamed:@"navBack"];