Swift:navigation item显示为下拉菜单而非按钮,如何修改?
一、Storyboard/可视化编辑场景
- 检查导航栏按钮布局:如果在Navigation Item的「Left Bar Button Items」或「Right Bar Button Items」中添加了多个按钮,系统会自动将它们打包成下拉菜单。只需把多余按钮移到对应另一侧的slot,或者确保单个slot内只放一个按钮即可。
- 检查按钮属性:选中目标按钮,在Attributes Inspector面板里确认没有关联UIMenu对象。如果误加了菜单,直接清空Menu选项就能恢复成普通按钮。
二、代码实现场景
- 排查初始化方法:如果是用代码创建Bar Button Item,检查是否误用了带
menu参数的初始化方法,或者后续给按钮设置了menu属性。去掉menu参数、或者设置button.menu = nil就能恢复正常按钮样式。 - 代码示例修正:
错误写法(带菜单):
修正后(普通按钮):let menu = UIMenu(title: "", children: [UIAction(title: "操作") { _ in }]) let barButton = UIBarButtonItem(title: "按钮", style: .plain, target: self, action: #selector(buttonTapped), menu: menu) navigationItem.rightBarButtonItem = barButtonlet barButton = UIBarButtonItem(title: "按钮", style: .plain, target: self, action: #selector(buttonTapped)) navigationItem.rightBarButtonItem = barButton
内容的提问来源于stack exchange,提问作者Boomy
相关产品推荐
相关产品推荐

