Gleichzeitige UIAlertControllers

Ich bin Portierung meiner app auf iOS 8.0 und beachten Sie, dass uialertview-Objekt ist veraltet.

So, ich habe mich verändert, die Dinge zu verwenden, ein UIAlertController. Das funktioniert in den meisten Fällen.

Außer, wenn meine app öffnet, ist es mehrere Prüfungen zu berichten verschiedenen Staaten zurück an den Benutzer...

E. g... "Achtung, Sie haben nicht X-up und tun müssen, um Y vor Abschluss der Projekte" und "Warnung, Sie verwenden eine beta-version und verlassen Sie sich nicht auf die Ergebnisse", etc...(dies sind nur Beispiele!!!)

Unter der uialertview-Objekt, ich würde (sagen) zwei alert-Boxen, die gleichzeitig die der Benutzer Tippen Sie zweimal, um zu schließen die beiden...aber Sie haben beide angezeigt.

Unter UIAlertController mit dem code unten eine "Allgemeine" Meldung, erhalte ich nur eine alert-Nachricht zusammen mit einer Konsole-Nachricht:

Warnung: Versuch UIAlertController: 0x13f667bb0 auf TestViewController: 0x13f63cb40, die bereits präsentiert UIAlertController: 0x13f54edf0

So, obwohl die oben wahrscheinlich kein gutes Beispiel, ich denke es kann Zeiten geben, wenn mehr als eine Globale Warnung " kann präsentiert werden müssen, aufgrund von 'Ereignissen' während der Bedienung einer app. Unter dem alten uialertview-Objekt, Sie erscheinen würden, aber es scheint, dass Sie nicht unter einem UIAlertController.

Kann jeder jeden schlagen, wie dies erreicht werden könnte, mit einem UIAlertController?

Dank

+(void)presentAlert:(NSString*)alertMessage withTitle:(NSString*)title
{
    UIAlertController *alertView = [UIAlertController
                                    alertControllerWithTitle:title
                                    message:alertMessage
                                    preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction* ok = [UIAlertAction
                         actionWithTitle:kOkButtonTitle
                         style:UIAlertActionStyleDefault
                         handler:^(UIAlertAction * action)
                         {
                             //Do some thing here
                             [alertView dismissViewControllerAnimated:YES completion:nil];
                         }];

    [alertView addAction:ok];

    UIViewController *rootViewController = [[[UIApplication sharedApplication] delegate] window].rootViewController;
    [rootViewController presentViewController:alertView animated:YES completion:nil];

Edit: ich Bemerke, dass auf iOS8, die Präsentation von zwei AlertViews nacheinander, Sie sind 'in der Warteschlange' und erscheinen nacheinander in der Erwägung, dass in iOS7, Sie erscheinen gleichzeitig. Es scheint, Apple geändert haben uialertview-Objekt zur queue für mehrere Instanzen. Gibt es eine Möglichkeit, dies zu tun mit UIAlertController, ohne weiter zu verwenden (veraltet, aber modifiziert) uialertview-Objekt???

  • haben Sie noch Glück bei der Suche nach einer Antwort auf Ihre Frage?
  • Leider Nein. In dem moment, Im kleben mit der scheinbar geänderten uialertview-Objekt. Zeitmangel verbietet mir, genauer zu untersuchen.
  • Haben wir keine Lösung für dieses Problem?
  • Ich habe gerade gebucht und meine Lösung, überprüfen Sie es heraus unten.
  • UIAlertController ist mehr und mehr suchen, wie ein weniger als die Hälfte-a$$ed-job für mich.
  • Überprüfen Sie meine Antwort unten (stackoverflow.com/a/38875376/3412051). Ich löste dieses Problem und erstellt ein Github-Projekt für andere.

InformationsquelleAutor Fittoburst | 2014-09-19
Schreibe einen Kommentar