【问题标题】:How to set NavigationView default value?如何设置 NavigationView 默认值?
【发布时间】:2020-01-07 22:35:05
【问题描述】:


我有以下代码:

import SwiftUI


struct DetailView: View {
    let text: String

    var body: some View {
        Text(text)
            .frame(maxWidth: .infinity, maxHeight: .infinity)
    }
}


struct ContentView: View {
    private let names = ["One", "Two", "Three"]
    @State private var selection: String? = "One"

    var body: some View {
        NavigationView {
            List(selection: $selection) {
                ForEach(names, id: \.self) { name in
                    NavigationLink(destination: DetailView(text: name)) {
                        Text(name)
                    }
                }
            }

            DetailView(text: "Make a selection")
        }
    }
}


struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

我认为将“选择”设置为“一”是答案,但它只会突出显示“一”(顺便说一下灰色)。

启动时所需的行为是:

【问题讨论】:

  • 列表支持多选。
  • 只是看不到您的问题。可能需要更新到最新的 Xcode
  • @E.Coms 我有 Xcode 11.3 Build 版本 11C29
  • 适用于 Xcode 11.2.1 / macOS 10.15.2(已知的灰色高亮问题除外)
  • 您使用的是 iPad 模拟器吗?什么是 detailView?

标签: swift macos swiftui


【解决方案1】:

它应该可以在占位符selection ?? "Make a selection"中添加选择,即:

struct ContentView: View {
    private let names = ["One", "Two", "Three"]
    @State private var selection: String? = "One"

    var body: some View {
        NavigationView {
            List(selection: $selection) {
                ForEach(names, id: \.self) { name in
                    NavigationLink(destination: DetailView(text: name)) {
                        Text(name)
                    }
                }
            }

            DetailView(text: selection ?? "Make a selection")
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 2011-07-09
    • 2020-12-14
    • 2012-07-31
    相关资源
    最近更新 更多