如何在 UIAlertController 中设置背景颜色

How to set background color in UIAlertController

我正在尝试设置 UIAlertController 的背景颜色。我正在使用的代码似乎(几乎)做到了这一点,除了它看起来更像 Tint 而不是 BackgroundColor。角落是我设置的颜色,但警报的主体看起来更像是有色的。我的理解是实际警报视图是 UIAlertController.

的最后一个子视图

我的代码:

var okAlertController = UIAlertController.Create(message, messagetype, UIAlertControllerStyle.Alert);
okAlertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));

int lastView = okAlertController.View.Subviews.Length - 1;

if (messagetype.ToUpper() == "ERROR")
{ 
    okAlertController.View.Subviews[lastView].BackgroundColor = new UIColor(CoreImage.CIColor.RedColor );
} 
else if (messagetype.ToUpper() == "SUCCESS") 
{
    okAlertController.View.Subviews[lastView].BackgroundColor = new UIColor(CoreImage.CIColor.GreenColor);
}

这是正确的吗?我一直在根据我显示的消息类型寻找纯绿色、红色或默认值,或者这是我唯一能做的吗?

经过我的测试,我想出了用代码实现的方法:

okAlertController.View.Subviews[0].Subviews[0].Subviews[0].BackgroundColor=UIColor.Green;