UIAlertview нажал кнопку в методе делегата индекса, который не вызывается
Я новичок в AlertViews с действиями. Я установил мой, как в примерах, которые я нашел здесь, включая установку метода делегата в моем.h, но когда я отлаживаю, обнаружил, что он не достигает моего метода clickedButtonAtIndex. Вероятно, упущено что-то простое:-/ Любая помощь в решении этого будет принята, спасибо Вот мой код:
.h файл
@interface LineDetailViewController : UIViewController <UIAlertViewDelegate>
, м файл:
- (IBAction)removeLineButton:(UIButton *)sender {
NSString * requestSubmitText = [NSString stringWithFormat:@"Hey Bro are you sure you want to remove this line you created, it will also remove all the reviews attached and can not be undone?"];
UIAlertView *removeLineRequest = [[UIAlertView alloc] initWithTitle:@"WARNING!!"
message:requestSubmitText
delegate:nil
cancelButtonTitle:@"Remove It"
otherButtonTitles:@"Cancel",nil];
[removeLineRequest show];
- (void)alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex{
//if (buttonIndex == [alertView cancelButtonIndex]){
if (buttonIndex == 0){
NSLog(@"Cancel button pressed");
}else{
NSLog(@"other button pressed");
}
}
4 ответа
Вы должны установить делегата self
UIAlertView *removeLineRequest = [[UIAlertView alloc] initWithTitle:@"WARNING!!"
message:requestSubmitText
delegate:self // <- here
cancelButtonTitle:@"Remove It"
otherButtonTitles:@"Cancel",nil];
При создании вашего оповещения установите ваш делегат на себя. И вы уже реализовали UIAlertViewDelegate.
Чтобы решить вашу проблему, просто установите delegate
в self
вместо nil
, Некоторая дополнительная информация,
UIAlertView
а также UIAlertViewDelegate
были объявлены устаревшими. Согласно документации,
UIAlertView
устарела. использованиеUIAlertController
сpreferredStyle
изUIAlertControllerStyleAlert
вместо.
Соответствующий учебник здесь