我在Xcode 13 beta 5上测试了我的应用程序,发现导航栏是“白色的”,导航栏上的文本不可见。
在苹果开发者论坛https://developer.apple.com/forums/thread/682420中指出:“在iOS 15中,UIKit扩展了scrollEdgeAppearance的使用,该属性默认产生透明背景,适用于所有导航栏。” 要恢复旧的外观,您必须采用新的UINavigationBar外观API。
我添加了上述代码(来自上面的链接)到App Delegate的“application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions”方法中。
if #available(iOS 13, *) {
let navigationController = UINavigationController(navigationBarClass: nil, toolbarClass: nil)
let navigationBar = navigationController.navigationBar
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = UIColor(red: 0.0/255.0, green: 125/255.0, blue: 0.0/255.0, alpha: 1.0)
navigationBar.standardAppearance = appearance;
navigationBar.scrollEdgeAppearance = navigationBar.standardAppearance
navigationBar.isTranslucent = false
}
这并没有解决问题。我仍然在导航栏的storyboard编辑器中设置了自定义色调。我是需要删除自定义色调还是我的外观API实现有误?
UINavigationBar.appearance()
的东西,但老实说,我不熟悉新的iOS 15 API。 - Teetz