2011-05-10 5 views
2

это то, как я создаю предупреждение: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"); 
} 

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

+1

ли вы поместите 'UIAlertViewDelegate' протокол в заголовке? –

+0

спасибо, что была проблема, сделайте это ответом! –

ответ

3

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

@interface MyClass : UIViewController <UIAlertViewDelegate> 

Для добавления нескольких протоколов, использование:

@interface MyClass : UIViewController <Protocol1, Protocol2, ...> 
Смежные вопросы