不要解雇UIAlertController

时间:2016-12-18 12:53:24

标签: ios objective-c uialertview uialertcontroller

我目前有一个UIAlertController,我需要做出不允许的。按下操作按钮时,警报不应解除。

我该怎么做?

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

拜托,帮助我!

3 个答案:

答案 0 :(得分:1)

我建议创建一个包含UIView的UIViewController。在此UIView中,您将能够显示所需信息并添加所需的自定义按钮操作。

为了使UIView看起来像模态视图控制器,添加带有UIBlurEffectStyle的UIVisualEffectView。

这就像使用storyboard / xib创建传统视图控制器一样简单,在界面构建器中添加所需的UIView,然后链接相关的视图控制器类。完成初始设置和用户界面后,将以下代码添加到viewDidLoad。此外,您可以在viewWillAppear&amp;中执行所需的动画等。 viewWillDisappear。

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

答案 1 :(得分:0)

你可以这样做

如果您不想要解除alertController,那么您可以禁用它的按钮操作,如

alert.actions[1].enabled = NO

这将使您的alertController不可忽略。

答案 2 :(得分:0)

在您不希望其退出的alertButton的操作开始时,再次简单地显示alertContoller,

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