UIAlertController tint color defaults to blue on highlight UIAlertController tint color defaults to blue on highlight ios ios

UIAlertController tint color defaults to blue on highlight


This is a known Bug, see https://openradar.appspot.com/22209332

To fix it, reapply the tint color in the Completion handler. Here's my Swift Solution, you will be able to adapt it easily for ObjC:

alertController.view.tintColor = UIColor.redColor() // apply 1st time to prevent flicker from Blue to Red when displayingnavigationController?.presentViewController(alertController, animated: true, completion: {    // Bugfix: iOS9 - Tint not fully Applied without Reapplying    alertController.view.tintColor = UIColor.redColor()})

One Note: This does not fix the Bug entirely. You will notice upon Device Rotation that the Buttons are recolored with System Default (= Blue) tint.

Expect it to be fixed with iOS 9.1.

Edit 10/23/2015: Still not fixed with iOS 9.1. Retested with iOS 9.1 + Xcode 7.1 (7B91B) released a couple of days ago. As of now setting the .tintColor does not work, however as commented you can set the tintColor of the whole Application, e.g. in AppDelegate didFinishLaunchingWithOptions set window?.tintColor = UIColor.redColor(). This also tints the AlertController Buttons but may not be suitable in some cases as this tint is applied throughout the whole Application.


Just add the tintColor after the presentViewController. Works on iOS 9.0.2

[self presentViewController:alertController animated:YES completion:nil];[alertController.view setTintColor:[UIColor yellowColor]];


You can also change the app tint color in appdelegate.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    self.window.tintcolor = [UIColor yellowColor];    return YES;}

works perfect for me.