我已经实施了这样的提醒:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Time Over"
message:@"Player Two won!"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
现在我想在按下“确定”时设置score = 0
。有人可以帮帮我吗?
答案 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;
这样的委托