swift - SwiftUI .navigationBarHidden(false) 在 iOS 14 上不起作用
问题描述
我有一个简单的 SwiftUI 视图,其中包含一个 Web 视图:
struct GetInTouchView: View {
// MARK: - state
@State var url: URL
@State var backgroundColour = Color.login.background
// MARK: - init
init(url: URL) {
self._url = .init(wrappedValue: url)
}
// MARK: - body
var body: some View {
ZStack {
backgroundColour
.edgesIgnoringSafeArea(.all)
WebView(url: $url, backgroundColour: $backgroundColour)
.edgesIgnoringSafeArea(.bottom)
}
.environment(\.colorScheme, .light)
.preferredColorScheme(.light)
.navigationTitle(NSLocalizedString("Get in touch", comment: "Get in touch"))
.navigationBarTitleDisplayMode(.inline)
.navigationBarHidden(false)
}
}
此视图显示在使用导航链接隐藏导航栏的视图中:
let getInTouchView = LazyView(GetInTouchView(url: getInTouchUrl))
NavigationLink(destination: getInTouchView) {
Text(NSLocalizedString("Get in touch", comment: "Get in touch"))
.mp_white_outline_pill_button()
}
在 iOS 14 上,导航栏永远不可见。似乎还有一个问题,即有两个导航链接会导致获取联系视图立即弹出,因此我将其包含在上述导航链接下,这似乎可以解决该问题:
NavigationLink(destination: EmptyView()) { EmptyView() }
但是,导航栏仍然不可见。上面的代码在 iOS 15 上运行良好,所以这似乎只是 iOS 14 的问题。
iOS 14:
iOS 15:
解决方案
推荐阅读
- c++ - GoogleTest 模拟对象方法调用失败
- laravel - Laravel belongs to Many relations
- javascript - 如何在 JavaScript 上使用 Google 日历 API 添加与会者
- r - 如何创建一个随 R 中迭代次数而变化的输入字符串?
- javascript - React:如何使用 onClick 运行背景动画?
- android - 以编程方式将 TextureView 与 ExoPlayer 一起使用?
- javascript - 在 BigCommerce 中通过 API 请求获取所有产品
- python - 如何放大图像的某些部分?
- php - 将 Magento 版本 2.4.1 降级到 1.9.4?需要完整的步骤
- javascript - 将资产包含在带有 Expo 的单声道包中,而不是相对路径?