本文介绍了弹出子导航时的透明选项卡栏查看IOS 15的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个带有TabBar的SwiftUI应用程序。如果我从NavigationView打开详细信息子视图,然后单击";Back";,选项卡栏将变为透明,并在选项卡栏图标下方显示源中的项目。
- 从主页提要中,打开子导航详细信息视图。-
- 然后进入详细视图后,单击"上一步"。-
- 您将看到此错误。选项卡栏将是透明的。-
推荐答案
iOS15中,苹果扩展了对UIKit滚动边缘外观的支持。默认情况下,此设置会生成透明的选项卡栏背景。
若要解决此问题,请将下面的代码添加到SceneDelegate文件中,以定义选项卡栏的颜色,这样SwiftUI就不会自动将其变为透明。
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(
_ scene: UIScene,
willConnectTo session: UISceneSession,
options connectionOptions: UIScene.ConnectionOptions
) {
guard let windowScene = (scene as? UIWindowScene) else { return }
// MARK: ADD THIS CODE BELOW TO YOUR SCENE DELEGATE.
// TAB BAR BACKGROUND COLOR HERE.
UITabBar.appearance().barTintColor = UIColor.white
// TAB BAR ICONS COLOR HERE.
UITabBar.appearance().tintColor = UIColor.blue
UITabBar.appearance().isTranslucent = true
if #available(iOS 15.0, *) {
let appearance = UITabBarAppearance()
appearance.configureWithOpaqueBackground()
// TAB BAR BACKGROUND COLOR HERE. (same as above)
appearance.backgroundColor = UIColor.white
UITabBar.appearance().standardAppearance = appearance
UITabBar.appearance().scrollEdgeAppearance = UITabBar.appearance().standardAppearance
}
let window = UIWindow(windowScene: windowScene)
window.rootViewController = UIHostingController(rootView: RootView())
self.window = window
window.makeKeyAndVisible()
}
}
这篇关于弹出子导航时的透明选项卡栏查看IOS 15的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!