更新 SwiftUI 导航栏标题

Ale*_*x B 2 ios swiftui swiftui-navigationview

我有一个Form将导航栏标题设置为“设置”的视图,以及将导航栏标题设置为“选项”的视图Picker内的视图。Form

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

如何让导航栏标题在Form查看时为“设置”,在查看时为“选项” Picker?谢谢!

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

在此输入图像描述

Asp*_*eri 5

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

这是方法的演示。使用 Xcode 12.4 / iOS 14.4 进行测试

演示

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