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

iPad Pro 10.5升级iOS11.2.6后UIBarButtonItem tint修改无响应求助

iOS 11.2.6 iPad Pro 10.5 上 UIBarButtonItem tint 失效问题确认与临时解决办法

我之前升级iPad Pro 10.5到iOS 11.2.6后,也碰到了完全一样的问题!可以明确告诉你,这不是你的代码问题——从你描述的测试情况(iOS11.2.5的iPhone、iOS11.2的iPad模拟器都正常)来看,这大概率是iOS 11.2.6针对iPad Pro 10.5这个特定设备版本引入的系统bug。

社区里也有不少同设备同系统版本的开发者反馈过这个问题,核心表现就是直接修改UIBarButtonItem的tintColor完全没有效果,即使代码逻辑本身没有问题。

给你几个临时的解决办法,可以试试:

  • 通过导航栏全局 tint 间接设置:如果你的导航栏所有按钮都需要统一颜色,可以直接修改导航栏的tintColor,这个在iOS11.2.6上是生效的:
    navigationController?.navigationBar.tintColor = UIColor.red // 替换成你需要的颜色
    
  • 自定义 UIBarButtonItem 的 customView:如果只需要单独修改这一个按钮的颜色,可以用UIButton作为自定义视图来创建UIBarButtonItem,这样就能自由控制按钮的颜色了:
    let customButton = UIButton(type: .system)
    customButton.setTitle("开关", for: .normal)
    customButton.tintColor = UIColor.blue // 这里设置颜色
    customButton.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
    onOffButton = UIBarButtonItem(customView: customButton)
    
  • 延迟设置 tint:尝试在viewDidAppear(_:)方法里设置tintColor,而不是viewDidLoad,有时候系统视图的初始化时机在这个版本有变化,延迟设置可能生效。

目前这个bug在后续的iOS版本(比如iOS11.3及以上)已经被修复了,如果条件允许,建议升级到更高版本的系统来彻底解决这个问题。

内容的提问来源于stack exchange,提问作者Vallarta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:01:21