传递给不带参数的调用的参数 - TabView

Argument passed to call that takes no arguments - TabView

我创建了一个新的 SwiftUI 文件并使用 xcode,我确实添加了默认的 tabview,但它抛出了一个错误。我试图通过创建一个新的 Xcode 项目来重现此错误,但它运行良好。如果我删除 TabView 代码,它构建正常。

import SwiftUI

struct TabView: View {
    
    @State var tabSelection = 0
    var body: some View {
        Text("wowcool")
      
        TabView(selection: .constant(1)) {
            Text("Tab Content 1").tabItem { Text("Tab Label 1") }.tag(1)
            Text("Tab Content 2").tabItem { Text("Tab Label 2") }.tag(2)
        }
    }
}

struct TabView_Previews: PreviewProvider {
    static var previews: some View {
        TabView()
    }
}

下面是我得到的:

尝试修复:

  1. 重新启动Xcode
  2. 清理项目
  3. 已删除派生数据
  4. 重新启动计算机

目前在 Xcode 13.3 和 macOS 12.3

您正在覆盖 SwiftUI 的 TabView。将您的视图重命名为其他名称。

这是由于类型冲突(您将自定义视图命名为系统一),所以

解决方案 1:

struct MyTabView: View {

   ...
        TabView(selection: .constant(1)) {

   ...
}

解决方案 2:

struct TabView: View {

   ...
        SwiftUI.TabView(selection: .constant(1)) {

   ...
}

注意:我会始终推荐解决方案 1,并且不要使用与系统类型相同的名称。