2015-10-05 5 views
15

UAlertView ist in iOS 9 und höher veraltet. Was wäre eine Alternative?Alternative zu UIAlertView für iOS 9?

UIAlertView *new = [[UIAlertView alloc] initWithTitle:@"Success" message:@"Your InApp Purchases were successfully restored" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
[new show]; 
+1

irgendeinem Grund nicht einfach haben aussieht in der Dokumentation für 'UIAlertView' (was genau sagt, was zu tun ist) oder eine Suche vor dem Posten dieser Frage? Bitte versuchen Sie eine Antwort zu finden, bevor Sie etwas veröffentlichen. – rmaddy

+0

Wenn Sie in ihrem Dokument keine Antwort finden, verschieben Sie Ihr Projekt besser auf iOS 8.: P –

Antwort

45

können Sie diesen Code verwenden, um eine Alarmansicht zu ersetzen:

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"Message" preferredStyle:UIAlertControllerStyleAlert];   
[alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]]; 
[self presentViewController:alertController animated:YES completion:nil]; 

Wenn Sie mehrere Aktionen benötigen, können Sie verwenden:

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"Message" preferredStyle:UIAlertControllerStyleAlert]; 
[alertController addAction:[UIAlertAction actionWithTitle:@"Button 1" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 
    // action 1 
}]]; 
[alertController addAction:[UIAlertAction actionWithTitle:@"Button 2" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 
    // action 2 
}]]; 
[alertController addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 
    [self dismissViewControllerAnimated:YES completion:nil]; 
}]];   
[self presentViewController:alertController animated:YES completion:nil]; 
+1

Dies erfordert so viel Code zu implementieren ... Was denken sie? Die Fähigkeit, Antworten ohne einen Delegaten zu behandeln, ist jedoch eine nette Ergänzung. –

+0

@Kundapra Hudga, warum haben Sie sich entschieden, dispatch_async für [self presentViewController: alertController animiert: YES completion: nil]; ? – Adela

+0

Sie verwenden den UIAlertController, sehen Sie für Swift AlertController Tutorial: https://iosdevcenters.blogspot.com/2016/03/uialertcontroller-in-swift.html –

1
UIAlertController * alert= [UIAlertController 
            alertControllerWithTitle:@"My Title" 
            message:@"Enter User Credentials" 
            preferredStyle:UIAlertControllerStyleAlert]; 

    [self presentViewController:alert animated:YES completion:nil]; 
9

Oft erhalten Sie detaillierte Informationen, einschließlich der Ersatz Vorschlag von auf das Symbol -Klick, die die Klasse/Methodendeklaration zeigt.

Bei UIAlertView werden Sie

siehe "UIAlertView ist veraltet. Verwenden Sie UIAlertController mit einem preferredStyle von UIAlertControllerStyleAlert statt"

1

I use "UIAlertController" auf iOS 8 und höher haben. Mal sehen:

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Success" message:@"Your InApp Purchases were successfully restored" preferredStyle:UIAlertControllerStyleAlert]; 

und Schaltflächen hinzufügen:

UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){ 
      //do something when click button 
}]; 

Denken Sie daran:

[alertController addAction:okAction]; 

es dann zeigen:

[self presentViewController:alertController animated:YES completion:nill]; 

Wenn Sie eine actionsheep zeigen möchten, können Sie Änderung

"preferredStyle:UIAlertControllerStyleActionSheet" 
2
UIAlertController * alert= [UIAlertController 
          alertControllerWithTitle:@"Info" 
          message:@"You are using UIAlertController" 
           preferredStyle:UIAlertControllerStyleAlert]; 

    UIAlertAction* ok = [UIAlertAction 
        actionWithTitle:@"OK" 
        style:UIAlertActionStyleDefault 
        handler:^(UIAlertAction * action) 
        { 
         [alert dismissViewControllerAnimated:YES completion:nil]; 

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

[self presentViewController:alert animated:YES completion:nil];