有人知道为什么在对NavigationBarTitle使用变量时会出错吗? 错误的变化取决于我将这行代码放在什么位置,或主要的容器是什么。目前,我得到了通常的'CGFloat'不能转换为'CGFloat吗?'
但是,如果我将padding替换为navigationBarTitle,则会得到对成员'navigationBarTitle(_:displayMode :)'的模糊引用
如果将sectionName替换为“”,则编译器会感到满意。
struct TestView : View {
private var sectionName = "Hello"
var body : some View {
VStack(alignment: .leading) {
Text("Hello")
}
.navigationBarTitle(sectionName, displayMode:.inline)
.padding(.horizontal, 12.0)
}
}
答案 0 :(得分:1)
首先,要查看实际错误,可以将Xcode更新为11.4版本-它可以更好地显示错误。
第二个-如果您要使用SwiftUI
框架,则会看到:
public func navigationBarTitle(_ titleKey: LocalizedStringKey, displayMode: NavigationBarItem.TitleDisplayMode) -> some View
因此,错误是您使用String
而不是LocalizedStringKey
解决方案是:
// replace this
//private var sectionName = "Hello"
// to this:
private var sectionName: LocalizedStringKey = "Hello"