访问警报按钮

时间:2015-03-12 23:08:57

标签: button alert alertview

我已经实施了这样的提醒:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Time Over"
                                                    message:@"Player Two won!"
                                                   delegate:nil
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];
[alert show];

现在我想在按下“确定”时设置score = 0。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

您必须为按钮点按添加alertView:willDismissWithButtonIndex:委托方法。

点击按钮时,系统会调用该按钮,buttonIndex将成为点击按钮的索引(显然)。

但是,如果您只有一个按钮,则不需要索引(除非您打算稍后在视图中添加其他按钮)。

这应该可以解决问题:

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger) buttonIndex {
    score = 0;
}

要实现此目的,您必须将delegate参数从nil更改为self


作为Aaron Brager notes,如果您仅定位到iOS 8,则可能需要使用UIAlertController,因为UIAlertView已被弃用:

UIAlertController *alert = [UIAlertController
                                    alertControllerWithTitle:@"Time Over"
                                    message:@"Player Two won!"
                                    preferredStyle:UIAlertControllerStyleAlert];

然后,要添加操作,只需执行以下操作:

UIAlertAction *dismiss = [UIAlertAction
                     actionWithTitle:@"OK"
                     style:UIAlertActionStyleDefault
                     handler:^(UIAlertAction *action) {
                         score = 0; 
                     }];
[alert addAction:dismiss];

最后,提出观点:

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

答案 1 :(得分:0)

(如果你想在警报上使用多个按钮)在这里引用UIAlertViewDelegate方法AlertViewDelegate Reference并将你的UIAlertView实例设置为像alert.delegate = self;这样的委托