如何有条件地向将在 NavigationView 中显示的 SwiftUI View 添加尾随的 navigationbaritem?

How to add a trailing navigationbaritem conditionally to a SwiftUI View which will be presented in a NavigationView?

要将 navigationBarItem 添加到 SwiftUI 视图,我们可以使用类似于以下的代码:

NavigationView {
    Text("SwiftUI")
        .navigationBarTitle("Welcome")
        .navigationBarItems(trailing: Button("Help") {
                    print("Help tapped!")
           }
        )
    }

如何有条件地做到这一点。假设数组为空,则显示 "Help" 条形按钮,否则不显示条形按钮。

您可以有条件地 return 按钮作为视图,或者如果数组为空则为 nil

struct ContentView: View {

    var arr = ["String"] // also test [String]()

    var body: some View {

     NavigationView {
        Text("SwiftUI")
            .navigationBarTitle("Welcome")
            .navigationBarItems(trailing: !arr.isEmpty ? Button("Help") {
                        print("Help tapped!")
                } : nil
            )
        }
    }

}