如何更改 iOS 中的 UIAlertAction 按钮颜色?

How to Change the UIAlertAction button Color in iOS?

我有一个 UIAlertController 和一堆 UIAlertAcion 按钮。现在我需要用其他颜色而不是相同的颜色来显示一个按钮。

前任

Button1

Button2

Button3

Button1 and button3 should be in blue

and

button2 should be in red.

可能吗?怎么样?

随便说说你的想法 ...

我的代码:

UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:@"Food Menu" message:@"Select the MenuItem" preferredStyle:UIAlertControllerStyleActionSheet];
for(int i= 0; i<[menus count];i++){

  UIAlertAction *action = [UIAlertAction actionWithTitle:[menu objectAtIndex:i] style:UIAlertActionStyleDefault handler:^(UIAlertAction* action){
             [actionSheet dismissViewControllerAnimated:YES completion:nil];
             //do SomeWork

          }];

          if(i==currentIndex){
              //Put button Color Red
             }
           else{
             //put button color Blue
             }
          [actionSheet addAction:action];
       }

       UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction* action){
          [actionSheet dismissViewControllerAnimated:YES completion:nil];
       }];

       [actionSheet addAction:cancel];


  [self presentViewController:actionSheet animated:YES completion:nil];
}

喜欢更改提醒样式:UIAlertActionStyleDestructive

UIAlertController *alertController = [UIAlertController
                          alertControllerWithTitle:alertTitle
                          message:alertMessage
                          preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *cancelAction = [UIAlertAction 
        actionWithTitle:NSLocalizedString(@"Cancel", @"Cancel action")
                  style:UIAlertActionStyleCancel
                handler:^(UIAlertAction *action)
                {
                  NSLog(@"Cancel action");
                }];

 UIAlertAction *resetAction = [UIAlertAction
         actionWithTitle:NSLocalizedString(@"Reset", @"Reset action")
                   style:UIAlertActionStyleDestructive 
                 handler:^(UIAlertAction *action)
                 {
                   NSLog(@"Reset action");
                 }];

UIAlertAction *okAction = [UIAlertAction 
        actionWithTitle:NSLocalizedString(@"OK", @"OK action")
                  style:UIAlertActionStyleDefault
                handler:^(UIAlertAction *action)
                {
                  NSLog(@"OK action");
                }];

[alertController addAction:cancelAction];
[alertController addAction:resetAction];
[alertController addAction:okAction];
[self presentViewController:alertController animated:YES completion:nil];