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 } }
异常效果截图

请问各位是如何处理这个问题的?
内容的提问来源于stack exchange,提问作者matt
相关产品推荐
相关产品推荐

