SwiftUI工具栏按钮缺失问题:iOS15仅显示首个按钮求助
在iOS 15及更早版本中,未指定位置的ToolbarItem会默认使用primaryAction布局位,这个位置在iPhone导航栏里只会展示第一个元素,后续按钮会被隐藏或折叠到更多菜单中——这就是你看到第二个按钮不显示的原因,而iOS 16调整了Toolbar的布局逻辑,所以新版本能正常显示所有按钮。
你可以通过以下两种方式解决:
方式一:用ToolbarItemGroup包裹按钮并指定位置
将多个按钮放在同一个ToolbarItemGroup中,并明确指定布局位为.navigationBarTrailing,这样所有按钮都会在导航栏右侧显示:
import SwiftUI struct ContentView: View { var body: some View { NavigationView { Text("Hello, world!") .toolbar { ToolbarItemGroup(placement: .navigationBarTrailing) { Button { print("house") } label: { Image(systemName: "house") } Button { print("bookmark") } label: { Image(systemName: "bookmark") } } } } } }
方式二:给每个ToolbarItem单独指定位置
为每个ToolbarItem都设置placement: .navigationBarTrailing,同样能让多个按钮在导航栏右侧依次显示:
import SwiftUI struct ContentView: View { var body: some View { NavigationView { Text("Hello, world!") .toolbar { ToolbarItem(placement: .navigationBarTrailing) { Button { print("house") } label: { Image(systemName: "house") } } ToolbarItem(placement: .navigationBarTrailing) { Button { print("bookmark") } label: { Image(systemName: "bookmark") } } } } } }
内容的提问来源于stack exchange,提问作者protasm
相关产品推荐
相关产品推荐

