Методы делегата UIAlertView не отвечают на iOS 5.1 - PullRequest
2 голосов
/ 26 марта 2012

Я создал экземпляр UIAlertView с двумя кнопками, и в файле интерфейса моего класса (.h) я также установил делегата, но по-прежнему не могу получить никакого ответа при нажатии кнопок.Вот мой код:

 //myClass.h
    @interface MainMenu : UIViewController<UIAlertViewDelegate>
-(IBAction)secondAct:(id)sender;

И реализация

-(IBAction)secondAct:(id)sender
      alert = [[UIAlertView alloc] initWithTitle:@"Dear User"
                                                        message:@"Your Request Will be Sent To Security"
                                                       delegate:nil
                                              cancelButtonTitle:@"Cancel"
                                              otherButtonTitles:@"OK", nil];
  [alert show];
  [alert autorelease];
}

и метод делегата:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
 NSLog(@"UIAlertView delegate works");//this line too isnt displayed
 NSString *title=[ alertView buttonTitleAtIndex:buttonIndex ];
 if ([title isEqualToString:@"OK"]) {
NSLog(@"OK Pressed");
}//i want to create something like this

} Я сделал весь код выше, но все ещене могу предпринять никаких действий.В зависимости от того, какую кнопку я нажимаю, оповещение отключается.Что не так с этим кодом может кто-нибудь помочь? ОТВЕТ

Уважаемый PeterG. прокомментировал изменение delegete:nil на delegate:self, и теперь оно работает.

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Делегат, вероятно, должен быть установлен на себя.Если это сгенерирует ошибку, напишите об этом здесь.

Также я не думаю, что вы должны автоматически выпустить оповещение ivar.Попробуйте пропустить эту строку и посмотреть, что произойдет?

0 голосов
/ 08 сентября 2014

Просто дайте делегату "я".

-(IBAction)secondAct:(id)sender
      alert = [[UIAlertView alloc] initWithTitle:@"Dear User"
                                                        message:@"Your Request Will be Sent To Security"
                                                       delegate:self
                                              cancelButtonTitle:@"Cancel"
                                              otherButtonTitles:@"OK", nil];
  [alert show];
}
...