首页 > 解决方案 > Xcode 11 Beta 4 TabbedView 绑定问题

问题描述

环境:版本 11.0 beta 4 (11M374r)

我试图掌握不断发展的 List() 语法。
下面是一个简单的 UUID 列表:

在此处输入图像描述

通过 pre-Beta 4 代码: 在此处输入图像描述

这是我尝试的补救措施和编译器结果。
在修复之前的警告后,我创建了一个额外的错误: 在此处输入图像描述

我尝试用“@Binding”替换“@State”;这没有用。

这是完整的源代码:

import SwiftUI

enum TabIdentifier {
    case list
    case another
}

struct TabView: View {
    private var uuids: [String] = {
        let ids: [String] = Array(0...5).map { _ in
            UUID().uuidString
        }
        return ids
    }()

    @State private var selectedTab: TabIdentifier = .list

    var body: some View {
        TabbedView(selection: $selectedTab) {
            // ------------------------------------------------------------
            // Tab #1
            NavigationView {
                 List(uuids, id: \.id) { uuid in
                    Text(uuid)
                }.navigationBarTitle(Text("List of UUIDs"))
            }.tabItem {
                Text("List") // ...Tab #1 Label
            }
            .tag(TabIdentifier.list) // ...Tab #1 tag
            // ------------------------------------------------------------
            // Tab #2
            Text("Hello Ric!")
                .tabItem {
                    Text("Another view") // ...Tab #2 Label
            }
            .tag(TabIdentifier.another) // ... Tab #2 Label
        }
    }
}

有什么补救措施?

标签: tabsswiftuixcode11

解决方案


这是一个误导性错误。我很确定你的问题只是一个错字。应该是List(uuids, id: \.self),不是List(uuids, id: \.id)。根据您的代码,uuids它只是一个字符串数组,String没有属性id


推荐阅读