This AppDelegate code changes the status bar color for both iOS 13 and older iOS versions.
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
int red = 11;
int green = 22;
int blue = 33;
// the usual Xamarin.Forms code
global::Xamarin.Forms.Forms.Init();
LoadApplication(new App());
bool canLoadUrl = base.FinishedLaunching(app, options);
// get status bar and set color
UIView statusBar;
if (UIDevice.CurrentDevice.CheckSystemVersion(13, 0))
{
const int tag = 999;
var window = UIApplication.SharedApplication.Delegate.GetWindow();
if (window is null) return null;
statusBar = window.ViewWithTag(tag) ?? new UIView(UIApplication.SharedApplication.StatusBarFrame)
{
Tag = tag
};
window.AddSubview(statusBar);
}
else
{
statusBar = UIApplication.SharedApplication.ValueForKey(new NSString("statusBar")) as UIView;
}
if (!(statusBar is null))
{
statusBar.BackgroundColor = UIColor.FromRGB(red, green, blue);
}
return canLoadUrl;
}