2015-10-05 13 views
15

UAlertView obsoleto in iOS 9 e versioni successive. Quale sarebbe un'alternativa?Alternativa a UIAlertView per iOS 9?

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

Qual è il motivo non è stato sembra semplicemente ai documenti per 'UIAlertView' (che ti dice esattamente cosa fare) o fai una ricerca prima di pubblicare questa domanda? Si prega di fare qualche tentativo di trovare una risposta prima di pubblicare. – rmaddy

+0

se non trovi la risposta nel loro documento, è meglio spostare il progetto su iOS 8.: P –

risposta

45

È possibile utilizzare questo codice per sostituire una vista avviso:

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]; 

Se avete bisogno di più azioni che è possibile utilizzare:

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

Questo richiede tanto codice da implementare ... A cosa stanno pensando? La capacità di gestire le risposte senza un delegato è comunque una bella aggiunta. –

+0

@Kundapra Hudga, perché hai scelto di utilizzare dispatch_async per [autoViewViewontroller: alertController animato: SÌ completamento: nil]; ? – Adela

+0

Si utilizza UIAlertController, vedere per il tutorial di Swift AlertController: 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

possibile ottenere spesso visualizzare informazioni dettagliate su suggerimento sostituzione con -clic sul simbolo che mostra la dichiarazione della classe/metodo.

In caso di UIAlertView vedrete

"UIAlertView è deprecato. Utilizzare UIAlertController con un preferredStyle di UIAlertControllerStyleAlert invece"

1

devo uso "UIAlertController" su iOS 8 e versioni successive. Vediamo:

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

E aggiungere pulsanti:

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

Ricorda:

[alertController addAction:okAction]; 

Poi mostrarlo:

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

Se si desidera visualizzare un actionsheep, si cambio

"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];