ios - 尾随关闭失败的 SwiftUI 菜单 (MenuStyleConfiguration)

标签 ios xcode menu swiftui closures

我正在使用 SwiftUI 创建一个 iOS 应用程序
我使用了主/详细模板并得到了这个:

struct ContentView: View {

var body: some View {
  
     NavigationView {
        
        if (conditionsForMasterDetail)
        {
          masterView
            .navigationBarTitle(Text("Master"))
            .navigationBarItems(
                leading: EditButton(),
                trailing: Button(
                    action: {
                        withAnimation { self.dates.insert(Date(), at: 0) }
                    }
                ) {
                    Image(systemName: "plus")
                }
            )
        }
        
        if (conditionsForDetaiView)
        {
          detailView
        }
        } //NavigationView
    .navigationViewStyle(DoubleColumnNavigationViewStyle()).toolbar {
        ToolbarItem(placement: .primaryAction) {
            Menu
            { //error here: “Trailing closure passed to parameter of type 'MenuStyleConfiguration' that does not accept a closure”                        
                    NavigationLink(destination:HelpView(appData: appData))
                                        {                        Button(action: {}) {
                        Label(help_menu_item, systemImage: "")
                    }
                    }
                    Button(action: {}) {
                        Label(liability_disclaimer_menu_item, systemImage: "")
                    }
                
                                       Button(action: {}) {
                        Label(R.string.about_menu_item, systemImage: "")
                    }
                    

                
                
            }//menu
             
                 label: {//error here: Extra argument 'label' in call
        Label("Menu", systemImage: "")
    }
         
    }//toolbar item
         
           
}//toolbar

} //body
} //ContentView
问题是菜单,因为发出错误:
Trailing closure passed to parameter of type 'MenuStyleConfiguration' that does not accept a closure
请注意,尾随闭包只是编写初始化程序参数的另一种方式。菜单似乎接受了配置,但我看到了内容和标签(标签错误:调用中的额外参数“标签”)。
我尝试了各种没有尾随闭包语法的 init 编写方法,但它不会导致工作代码。
我想知道这是一个错误还是一个真正的错误。

最佳答案

这里以某种方式清理复制了您使用 Xcode 12/iOS 14 编译良好的快照。您可以将您的细节一一注入(inject)。
注:ButtonNavigationLink不起作用,所以没有意义(因为 NavigationLink 本身就是一个按钮)

struct ContentView: View {
    @State private var conditionsForMasterDetail = false
    @State private var conditionsForDetaiView = false

    var body: some View {
        NavigationView {
            if (conditionsForMasterDetail)
            {
                Text("masterView")
                    .navigationBarTitle(Text("Master"))
                    .navigationBarItems(
                        leading: EditButton(),
                        trailing: Button(
                            action: {
                                withAnimation { /*self.dates.insert(Date(), at: 0)*/ }
                            }
                        ) {
                            Image(systemName: "plus")
                        }
                    )
            }

            if (conditionsForDetaiView)
            {
                Text("detailView")
            }
        } //NavigationView
        .navigationViewStyle(DoubleColumnNavigationViewStyle()).toolbar {
            ToolbarItem(placement: .primaryAction) {
                Menu
                {
                    NavigationLink(destination:Text("HelpView(appData: appData)"))
                    { Text("Link")
                        //                        Label(help_menu_item, systemImage: "")
                    }
                    Button(action: {}) {
                        Text("A")
                        //                        Label(liability_disclaimer_menu_item, systemImage: "")
                    }

                    Button(action: {}) {
                        Text("B")
                        //                        Label(R.string.about_menu_item, systemImage: "")
                    }
                }//menu

                label: {//error here: Extra argument 'label' in call
                    Label("Menu", systemImage: "")
                }
            }//toolbar item
        }//toolbar
    } //body
} //ContentView

关于ios - 尾随关闭失败的 SwiftUI 菜单 (MenuStyleConfiguration),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63956441/

相关文章:

ios - Xcode 5 本地化问题

ios - 快速模糊 UITableViewCell contentView 背景

ios - iMessage 应用程序, "disallowed nested bundles"错误尝试使用二进制框架存档/上传

objective-c - objective-c 中使用点符号的内联类型转换

javascript - CSS 菜单格式问题

ios - 使用未解析的标识符?

ios - 代码 : Request to open App failed

html - CSS 调整为简单的下拉菜单

jquery - 粘性标题重叠内容

ios - 如何为 iPhone 使用锐化图像