You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI工具栏按钮缺失问题:iOS15仅显示首个按钮求助

iOS 15下SwiftUI NavigationView工具栏仅显示第一个按钮的解决办法

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 11:05:27