Доступ к кнопке оповещения
Я реализовал предупреждение, как это:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Time Over"
message:@"Player Two won!"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
Теперь я хочу установить score = 0
когда "ОК" нажата. Кто-нибудь может мне помочь?
2 ответа
(Если вы хотите использовать более одной кнопки в своем предупреждении) Ссылка на метод UIAlertViewDelegate приведена здесь AlertViewDelegate Reference и установите свой экземпляр UIAlertView в качестве делегата, подобного такому alert.delegate = self;
Вы должны добавить alertView:willDismissWithButtonIndex:
метод делегата для нажатий кнопок.
Когда кнопка нажата, она будет вызвана, и buttonIndex
будет индекс кнопки, которая нажата (очевидно).
Однако, если у вас есть только одна кнопка, индекс вам на самом деле не нужен (если только вы не планируете добавлять другие кнопки в представление позже).
Это должно сделать трюк:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger) buttonIndex {
score = 0;
}
Чтобы это работало, вы должны изменить свой delegate
параметр из nil
в self
,
Как отмечает Aaron Brager, если вы ориентируетесь только на 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];