swift - SwiftUI – 导航栏“isTranscluent”属性在 iPad 上崩溃
问题描述
如何isTranscluent
使用 SwiftUI 设置 iPad 导航栏的属性。以下代码在 iPhone 中运行良好,但在 iPad 中崩溃并出现错误:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
.
UINavigationBar.appearance().isTranslucent = false
解决方案
使用 UIKit 在 Xcode 12.0 Beta (iPad Pro 2018 with iPadOS 13.5) 中运行良好:
navigationController.navigationBar.isTranslucent = false
在使用 SwiftUI 的 Xcode 12.0 Beta(iPad Pro 2018 和 iPadOS 13.5)中也可以正常工作:
struct NavigationConfigurator: UIViewControllerRepresentable { ... }
NavigationView {
ScrollView {
Text("Scroll View")
}
.navigationBarTitle("Navigation Bar", displayMode: .inline)
.background(NavigationConfigurator { controller in
controller.navigationBar.barTintColor = .red
controller.navigationBar.titleTextAttributes = [.foregroundColor : .grey]
controller.navigationBar.isTranslucent = false
})
}
推荐阅读
- office-ui-fabric - 如何使OverflowSet中的按钮执行?
- javascript - 扫描字符串中的重复值并将其删除
- gtk - 文本缓冲区上“已更改”的 GTK+ / GTKMM 信号未接收到数据
- python - 如何从文档(数据集)中查找和打印不匹配/不相似的单词?
- android - Android动态功能模块,找不到资源
- php - 如何从我的 HTML 表单中获取选择选项值到我的 PHP 脚本?
- ios - Xcode 10/Swift 中的 Vision API 没有检测到任何东西。我在做一些明显错误的事情吗?
- php - Prestashop 1.7.5 如何通过组合获取产品的基本价格
- javascript - 频道中的人次计数
- r - 使用编码检查向量是否包含很长的字符串