我正在使用SwiftUI,目前通过以下方式全局设置导航栏返回按钮的色调:
UINavigationBar.appearance().tintColor = .black
升级到Xcode14并在iOS 16模拟器上构建后,我发现我设置的色调被忽略了,并且默认为系统蓝色色调。
我发现使用以下方法可以使其看起来符合预期:
let image = UIImage(systemName: "chevron.backward")?.withTintColor(.black, renderingMode: .alwaysOriginal)
appearance.setBackIndicatorImage(image, transitionMaskImage: image)
然而,我很好奇是否有更优雅的方法在iOS 16中全局控制色调的能力恢复
NavigationStack
上设置.tint
,然后给其子视图.tint(Color("AnotherColor"))
。缺点是你必须为堆栈中的每个视图都设置它。 - Randex