Доступ к кнопке оповещения

Я реализовал предупреждение, как это:

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];
Другие вопросы по тегам