2016-12-18 4 views
1

Ich habe derzeit einen UIAlertController, den ich nicht abmelden muss. Die Warnung sollte nicht ausgeblendet werden, wenn die Aktionstaste gedrückt wird.Den UIAlertController nicht verwerfen

Wie kann ich das tun?

UIAlertController *alert; 

    int bestScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"bestScore"] intValue]; 
    if (!bestScore || bestScore < _score){ 
     [[NSUserDefaults standardUserDefaults] setObject:@(_score) forKey:@"bestScore"]; 
     alert = [UIAlertController alertControllerWithTitle:@"GAME OVER " 
                message:[NSString stringWithFormat:@"NEW RECORD! \n SCORE : %d \n\n\n\n\n\n", _score] preferredStyle:UIAlertControllerStyleActionSheet]; 
    } 
    else alert = [UIAlertController alertControllerWithTitle:@"GAME OVER" 
                 message:[NSString stringWithFormat:@"SCORE : %d \n Best score : %d \n\n\n\n\n\n ", _score, bestScore] preferredStyle:UIAlertControllerStyleAlert]; 

    [alert addAction:[UIAlertAction actionWithTitle:@"Try again" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 
     [self newGame]; 
     [self addNewView]; 

    }]]; 


     [alert addAction:[UIAlertAction actionWithTitle:@"Answer" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 
       [alert viewWillDisappear:NO]; 

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

Bitte, hilf mir!

+3

Sie müssen eine andere Technik verwenden/erstellen, um Ihre Informationen anzuzeigen. Ein Alarm-Controller wird geschlossen, sobald einer seiner Knöpfe angetippt wird. – Paulw11

+0

Der 'UIAlertController' ist System' alert', Sie können es nicht ändern, ich schlage vor, dass Sie eine 'custom alert' schreiben. – aircraft

Antwort

1

Ich würde empfehlen, einen UIViewController zu erstellen, der eine UIView enthält. In diesem UIView können Sie Ihre erforderlichen Informationen anzeigen und die gewünschten benutzerdefinierten Schaltflächenaktionen hinzufügen.

Um die UIView wie einen modalen View-Controller aussehen zu lassen, fügen Sie eine UIVisualEffectView mit einem UIBlurEffectStyle hinzu.

Dies ist so einfach wie das Erstellen eines konventionellen View-Controllers, indem Sie Ihr Storyboard/xib das erforderliche UIView im Interface Builder hinzufügen und dann die zugehörige View-Controller-Klasse verknüpfen. Fügen Sie nach Abschluss der Ersteinrichtung und der Benutzeroberfläche den folgenden Code für viewDidLoad hinzu. Außerdem können Sie die gewünschten Animationen usw. in viewWillAppear & viewWillDisappear ausführen.

UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight] 
UIVisualEffectsView *blurView = [[UIVisualEffectView alloc] initWithEffect:effect]; 
[self.view insertSubview:blurView atIndex:0]; 
0

Sie können

wie dies tun, wenn Sie nicht alertController wollen entlassen, dann können Sie deaktivierte Schaltfläche Aktionen Sie daran, wie

alert.actions[1].enabled = NO 

Dies wird Ihre alertController Nicht dismissable machen.

Verwandte Themen