更新 SwiftUI 导航栏标题

Updating SwiftUI navigation bar title

我有一个将导航栏标题设置为“设置”的 Form 视图和一个将导航栏标题设置为“选项”的 Form 视图内的 Picker 视图.

导航至 Picker 视图时,导航栏标题未设置为“选项”,但后退按钮文本设置为“选项”。此外,当导航回 Form 视图时,导航栏标题更改为“选项”。

如何在 Form 视图中将导航栏标题设为“设置”,在 Picker 视图中将其设为“选项”?谢谢!

var body: some View {
    NavigationView {
        Form {
            Picker(selection: $currentSelection, label: Text("Options")) {
                ForEach(0 ..< options.count) {
                    Text(options[[=10=]])
                }
            }
            .navigationBarTitle("Options", displayMode: .inline)
        }
        .navigationBarTitle("Settings", displayMode: .inline)
    }
}

将导航标题修饰符放在 Picker 内。同样来自 Picker 项目的相同文本视图用于在 Form 中呈现选择,我们需要使选项标题有条件。

这是一个方法演示。使用 Xcode 12.4 / iOS 14.4

测试

Form {
    Picker(selection: $currentSelection, label: Text("Options")) {
        ForEach(0 ..< options.count) {
            if [=10=] != currentSelection {
               Text(options[[=10=]])
                .navigationBarTitle("Options", displayMode: .inline)
            } else {
               Text(options[[=10=]])
            }
        }
    }
}
.navigationBarTitle("Settings", displayMode: .inline)