如何有条件地将尾随导航栏项添加到将在 NavigationView 中显示的 SwiftUI 视图?

Roh*_*ale 1 uibarbuttonitem ios swift swiftui ios-navigationview

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

NavigationView {
    Text("SwiftUI")
        .navigationBarTitle("Welcome")
        .navigationBarItems(trailing: Button("Help") {
                    print("Help tapped!")
           }
        )
    }
Run Code Online (Sandbox Code Playgroud)

如何有条件地做到这一点。假设数组为空,则显示“帮助”栏按钮,否则不显示栏按钮。

Sh_*_*han 9

如果数组为空,您可以有条件地将按钮返回为视图或 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
            )
        }
    }

}
Run Code Online (Sandbox Code Playgroud)