我想有一个底部的工具栏与SwiftUI. 以下代码在iOS 15中运行,但在iOS 16中不起作用. 在iOS 16中,工具栏不显示.(如果我改变位置,它就起作用了…)

Text("Content")
    .toolbar {
        ToolbarItemGroup(placement: .bottomBar) {
            Button("Greeting") { 
                print("Hello world!")
            }
        }
    }

Screenshots

您有解决此问题的方法吗?

谢谢!

推荐答案

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!")
                        }
                    }
                }
        }
    }
}

这很可能是它以前工作过的一个漏洞.

如果不需要导航栏,可以将其隐藏.

//iOS 13+
.navigationBarHidden(true)

//iOS 16+
.toolbar(.hidden, for: .navigationBar)

Ios相关问答推荐

在许多UIButton中对齐文本,即使SF Symbols(或其他图像)具有不同的宽度?

如果没有等待,SWIFT Async让任务抛出取消异常

使用 WebKit 加载 YouTube 视频时控制台中打印警告

OBJC @selector 在另一个实现中不起作用

SwiftUI HStack 文本字段对齐

react 本机 |错误:无法解析 node_modules/react-native/index.js 中的模块

为什么这个 SwiftUI 状态在作为非绑定参数传递时没有更新?

如何在应用程序中显示我的小部件的快照?

视图之间的 SwiftUI 过渡,没有过渡

添加到单个自定义视图时,Swiftui 项目会在所有视图中重复

通过 tuist/XcodeProj 以编程方式将文件添加到本机目标

如何在 Swift 中从另一个视图控制器将元素附加到数组中

如何避免任何绑定空错误并更好地获取代码

在 Swift 中为 UITextField/UIView 摇动动画

Xcode 8,iOS 10 -为进程启动 WebFilter 日志(log)记录

本月使用 iOS 的天数?

iOS swift从另一个数组中删除一个数组的元素

Swift 将 unix 时间转换为日期和时间

在 iOS 7 中更改返回按钮会禁用滑动导航返回

如何为 iOS 13 的 SF Symbols 设置权重?