表单中的 SwiftUI 选择器 (iOS 16)

net*_*rac 6 xcode ios swift swiftui

在 iOS 16 之前,选择器视图在表单内呈现特殊行为。它们看起来像一个导航链接,将您带到一个新屏幕,您可以在其中选择一个选项。从 iOS 16 开始,这种行为似乎被删除了。

是否有可能获得“旧”行为?

例如这段代码

struct ContentView: View {
    @State private var selectedValue = "One"
    let counts = ["One", "Two", "Three"]

    var body: some View {
        NavigationView {
            Form {
                Section {
                    Picker("Selection", selection: $selectedValue) {
                        ForEach(counts, id: \.self) {
                            Text($0)
                        }
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

导致此行为(自 iOS 16 起)

选择器 iOS 16

而不是这个(iOS 16之前)

iOS 16 之前表单中的选取器样式

iOS 16 之前表单中的选取器样式

谢谢!!!

Car*_*ten 7

添加了 iOS 16 NavigationLinkPickerStyle,它具有 iOS 16 之前的行为。

struct ContentView: View {
    @State private var selectedValue = "One"
    let counts = ["One", "Two", "Three"]

    var body: some View {
        NavigationView {
            Form {
                Section {
                    if #available(iOS 16.0, *) {
                        Picker("Selection", selection: $selectedValue) {
                            ForEach(counts, id: \.self) {
                                Text($0)
                            }
                        }
                        .pickerStyle(.navigationLink)
                    } else {
                        Picker("Selection", selection: $selectedValue) {
                            ForEach(counts, id: \.self) {
                                Text($0)
                            }
                        }
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我发现,`.navigationLink` 是在 Xcode 14.1 Beta 之一中添加的。我目前正在使用 14.1 Beta 3 :/ (2认同)