使用UIHostingController时Xcode 14导航栏变白

j8yoct9x  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(142)

我注意到在使用Xcode 14构建应用程序时出现了一个bug。我的swiftui视图的导航栏变白了,不能正确显示标题、后退按钮或其他导航项目。我还没有发现其他人在网上报告过这个问题,但这显然是Xcode构建应用程序的方式发生了变化。
我已经验证了使用Xcode 13.4.1构建会产生预期的导航栏。
我手动下载了13.4.1,以便继续部署没有这个错误的版本,但我知道最终我将不得不调查为什么Xcode 14导致这个问题。我希望有一个修复,苹果发现和发布来解决这个问题。
导航栏是通过视图控制器以编程方式设置的,该视图控制器使用UIHostingController作为其rootView。
我发现只有在使用UIHostingController将swiftui注入UIKit应用时才会发生这种情况。SwiftUI视图不使用NavigationView,因此在viewController的导航栏中显示的内容和SwiftUI视图中显示的内容之间不应该有任何重叠。

ct3nt3jp

ct3nt3jp1#

我从来没有收到苹果的回复,但我想通了这个问题!
在我的例子中,应用程序有一些设置在Xcode 13中工作,但在Xcode 14中产生了这个问题。
1.我不得不从我的应用程序UIStatusBarStyle UIStatusBarStyleDarkContent的Info.plist中删除此键/瓦尔
1.我删除了在AppDelegate中设置的设置

application.setStatusBarStyle(UIStatusBarStyleLightContent)

1.我在每个ViewController中显式地调用了它(我使用了一个基类,我的所有ViewController都继承了这个基类)

navigationController.setNavigationBarHidden(false, animated:false)

进行上述更改后,导航栏正确显示,顶部状态栏也正确显示。

相关问题