【发布时间】:2021-11-05 17:22:26
【问题描述】:
我的 iOS 应用为 UI 使用故事板,并为导航栏的背景颜色使用自定义色调。
我在 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
}
这并不能解决问题。我仍然在故事板编辑器中为导航栏设置了自定义色调。我需要删除自定义色调还是我实现的外观 API 错误?
【问题讨论】:
-
您正在代码 sn-p 中创建 UINavigationController 的新实例。你在用这个实例做什么?只是一个疯狂的猜测:我认为您正在寻找类似 @987654324@ 的东西,但老实说我不熟悉新的 iOS 15 API。
标签: swift uinavigationcontroller ios15 xcode13