在Swift中从故事板创建的弹出窗口中更改箭头颜色

5
我正在尝试更改通过storyboard segue定义(而不是通过编程构建)从按钮弹出的默认弹出窗箭头颜色。以下图片显示了白色默认弹出框箭头:

enter image description here

当我添加以下代码时:
navigationController?.popoverPresentationController?.backgroundColor = myNavBarColor

将以下内容添加到呈现在弹出窗口中的UIViewControllerviewWillAppear方法中,结果如下所示:

enter image description here

在主要的UIViewControllerprepareForSegue方法中为UIPopoverPresentationController定义一个新的UIPopoverBackgroundView类是“太晚了”。
我希望有一个简单的解决方法(使用与弹出窗口相同的storyboard segue)来解决这个常见问题。

3
prepareForSegue中设置背景颜色,可使用以下代码:segue.destinationViewController.popoverPresentationController.backgroundColor - gabbler
它对我有效,非常感谢!;) - horothesun
请注意,我首先必须设置 segue.destination.modalPresentationStyle = .popover,否则 segue.destination.popoverPresentationController 将为 nil。除此之外,该解决方案运行良好。 - iStefo
2个回答

1

设置您的视图控制器的popoverPresentationController的背景颜色:

let viewController = YOUR_VIEW_CONTROLLER
viewController.modalPresentationStyle = .popover
if let presentation = viewController.popoverPresentationController {
    presentation.backgroundColor = UIColor.white
}
present(viewController, animated: true, completion: nil)

0

您还可以在将放置在popoverPresentationController内的视图中设置它

override func viewDidLoad()
{
    super.viewDidLoad()
    popoverPresentationController?.backgroundColor = view.backgroundColor
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接