iOS 8 UIAlertView不显示按钮

问题描述:

在我的应用程序中使用iOS 7.1中的UIAlertView显示一些警报,在iOS 8中完美地显示警报,但没有按钮取消,OK和其他...这会导致用户无法关闭警报,并因此被卡在屏幕上,不得不关闭应用程序。iOS 8 UIAlertView不显示按钮

我试图实现UIAlertView中和以前的版本为iOS UIAlertController 8,看下面的代码:

if ([[[UIDevice currentDevice] systemVersion] floatValue] < 8.0) { 
      UIAlertView *alerta = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"s000xS2", @"Alerta") message:NSLocalizedString(@"s000xS40", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"s000xS34", @"Não") otherButtonTitles:NSLocalizedString(@"s000xS35", @"Sim"), nil]; 

      [alerta show]; 
     }else{ 
      UIAlertController * alert= [UIAlertController 
              alertControllerWithTitle:NSLocalizedString(@"s000xS2", @"Alerta") 
              message:NSLocalizedString(@"s000xS40", nil) 
              preferredStyle:UIAlertControllerStyleAlert]; 

      UIAlertAction* sim = [UIAlertAction 
           actionWithTitle:NSLocalizedString(@"s000xS35", @"Sim") 
           style:UIAlertActionStyleDefault 
           handler:^(UIAlertAction * action) 
           { 
            [Util abrirSite:[[[Player sharedPlayer] emissora] site]]; 
            [alert dismissViewControllerAnimated:YES completion:nil]; 

           }]; 
      UIAlertAction* nao = [UIAlertAction 
            actionWithTitle:NSLocalizedString(@"s000xS34", @"Não") 
            style:UIAlertActionStyleDefault 
            handler:^(UIAlertAction * action) 
            { 
             [alert dismissViewControllerAnimated:YES completion:nil]; 

            }]; 

      [alert addAction:sim]; 
      [alert addAction:nao]; 


      [self presentViewController:alert animated:NO completion:nil]; 
     } 

有了这个代码,我有同样的问题,该按钮不会显示在警报显示,有什么建议解决这个问题?

请注意,我正在使用字符串进行国际化,他们通常都是工作的,已经通过直接放置字符串(@“...”)进行测试,但没有奏效。

试试这个:

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"ALERTA!" message:@"What will you do?" **preferredStyle:UIAlertControllerStyleAlert**]; 
__weak ViewController *wself = self; 

UIAlertAction *nao = [UIAlertAction actionWithTitle:@"I'm doing something" ***style:UIAlertActionStyleCancel*** handler:^(UIAlertAction *action) { 
    __strong ViewController *sself = wself; 
    sself.**lbl**.text = @"You did something!"; **//the text "You did something!" gets displayed on a label(if created) named lbl** 
}]; 
[alert addAction:nao]; 
[self presentViewController:alert animated:NO completion:nil];