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

iOS 26中Popover系统颜色显示异常且不响应明暗模式切换

iOS 26 Popover系统动态颜色适配异常问题求助

iOS 26中Popover出现系统动态颜色显示异常,切换明暗模式时无法自动适配,这和iOS 18等旧版本的正确表现完全相反。

具体问题表现

  • 亮模式下,Popover视图和内部Label均设置为.systemBackground,但Label背景显示为黑色(本该与视图背景一致为白色)
  • 所有名称包含.system的动态颜色都存在该问题
  • Popover显示期间切换明暗模式,背景不会随之变化;关闭后重新打开才会适配当前模式,说明Popover仅在初始化显示时识别系统模式,无法响应实时的模式变更
  • 即使在Popover的viewDidLoad中调用registerForTraitChanges([UITraitUserInterfaceStyle.self]),对应的回调方法也不会触发——Popover完全接收不到明暗模式的特征变化通知

极简复现代码

class ViewController: UIViewController {
    @IBAction func doButton(_ sender: UIButton) {
        let popover = ViewController2()
        popover.modalPresentationStyle = .popover
        if let presenter = popover.popoverPresentationController {
            presenter.sourceItem = sender
            presenter.delegate = self
        }
        present(popover, animated: true)
    }
}

extension ViewController: UIPopoverPresentationControllerDelegate {
    func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
        .none
    }
}

class ViewController2: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .systemBackground
        let label = UILabel()
        label.text = "Label"
        label.backgroundColor = .systemBackground
        view.addSubview(label)
        label.translatesAutoresizingMaskIntoConstraints = false
        label.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
        label.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
    }
}

异常效果截图

亮模式下Label背景显示为黑色

请问各位是如何处理这个问题的?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 13:27:35