如何设置 NavigationView 默认值?

Posted

技术标签:

【中文标题】如何设置 NavigationView 默认值?【英文标题】:How to set NavigationView default value? 【发布时间】: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? 【参考方案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")
        
    

【讨论】:

以上是关于如何设置 NavigationView 默认值?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 NavigationView 符号按钮的颜色

如何设置列的默认值?

如何将页脚添加到 NavigationView - Android 支持设计库?

如何处理NavigationView PaneFooter设置项单击

NavigationView 获取/查找标题布局

NavigationView更改菜单icon和title颜色变化效果