iOS 16 底部工具栏 - SwiftUI

Aki*_*x13 8 ios swift swiftui ios15 ios16

我想要一个带有 SwiftUI 的底部工具栏。以下内容适用于 iOS 15,但不适用于 iOS 16。在 iOS 16 中,工具栏未显示。(如果我改变位置就可以了......)

Text("Content")
    .toolbar {
        ToolbarItemGroup(placement: .bottomBar) {
            Button("Greeting") { 
                print("Hello world!")
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

截图

您对此有什么解决方法吗?

谢谢!

lor*_*sum 10

toolbar取决于导航栏,所以你必须有一个NavigationView/NavigationStack

https://developer.apple.com/documentation/swiftui/view/toolbar(content:)-5w0tj

struct ToolbarSolutionView: View {
    var body: some View {
        NavigationView{ //NavigationStack
            Text("Content")
            
                .toolbar {
                    ToolbarItemGroup(placement: .bottomBar) {
                        Button("Greeting") {
                            print("Hello world!")
                        }
                    }
                }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这可能是它之前工作的一个错误。

如果不需要,可以隐藏导航栏。

//iOS 13+
.navigationBarHidden(true)

//iOS 16+
.toolbar(.hidden, for: .navigationBar)
Run Code Online (Sandbox Code Playgroud)