具有变量的navigationBarTitle会给出各种随机错误

时间:2020-02-27 02:29:21

标签: swiftui

有人知道为什么在对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)
    }
}

1 个答案:

答案 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"