Метод оповещения не работает - PullRequest
0 голосов
/ 13 сентября 2011

В моем приложении у меня есть кнопка сброса, которая удаляет все данные таблиц и базы данных. Но перед удалением я должен поставить представление оповещения и задать вопрос следующим образом:

- (IBAction)resetData:(id)sender
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Bills Data Entry"
                      message:@"Are you sure want to reset data?" delegate:nil
                      cancelButtonTitle:@"No" otherButtonTitles:@"Yes", nil];
    [alert show];
    [alert release];
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == 1) {

        [self databaseOpen];
        NSString *deleteData=[NSString stringWithFormat:@"delete from tbl_Bills"];
        [database executeQuery:deleteData];
        NSLog(@"inert query: %@",deleteData);
        NSLog(@"records deleted");
        [table reloadData];
        [database close];

        // DO STUFF
    }
}

Этот метод не вызывается, когда я нажимаю на Да.

Ответы [ 3 ]

4 голосов
/ 13 сентября 2011

Делегат UIAlertView не должен быть равен нулю, если вы хотите вызвать его метод делегата.

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Bills Data Entry"
                        message:@"Are you sure want to reset data?" delegate:self
                        cancelButtonTitle:@"No" otherButtonTitles:@"Yes", nil];
1 голос
/ 13 сентября 2011
  When you are using Delegate method you are supposed to set "delegate: self" instead of nil.

  UIAlertView *my_Alert = [[UIAlert alloc] initWithTitle:@"Title of Alert" message:@"Your 
                          Message" delegate:self cancelButtonTitle:@"OK", 
                          otherButtonTitles:nil,nil];
1 голос
/ 13 сентября 2011

Для делегата UIAlertView должно быть установлено значение self, если вы хотите вызвать его метод делегата.

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Bills Data Entry"
                                          message:@"Are you sure want to reset data?"
                                          delegate:self
                                          cancelButtonTitle:@"No"
                                          otherButtonTitles:@"Yes",nil];
...