我目前有一个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];
拜托,帮助我!
答案 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];