Intereting Posts

UIAlertView clickedButtonAtIndex не вызывается

так я создаю предупреждение:

UIAlertView* dialog = [[UIAlertView alloc] init]; dialog.delegate = self; //some options aField = [[UITextField alloc]initWithFrame:CGRectMake(20.0,45.0,245.0,25.0)]; [aField setBackgroundColor:[UIColor whiteColor]]; [dialog addSubview:appkeyField]; [dialog show]; [aField release]; 

Однако

 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ NSLog(@"test here"); } 

ничего не делает. В журнале нет ничего! Что может быть неправильным?

Когда вы устанавливаете свойство delegate объекта, ваш класс должен принять соответствующий протокол. В вашем случае вы используете UIAlertView , поэтому вам нужно добавить протокол UIAlertViewDelegate в файл заголовка:

 @interface MyClass : UIViewController <UIAlertViewDelegate> 

Чтобы добавить несколько протоколов, используйте:

 @interface MyClass : UIViewController <Protocol1, Protocol2, ...>