2010-06-30 2 views
0

Я поставил кнопку над toolbar.But, когда я нажимаю эту кнопку, мой селектор не вызывается и происходит сбой приложения дает следующее сообщение об ошибкеуправления не доходит до селектору

Нагрузочный приложение из-за неперехваченного исключением «NSInvalidArgumentException», причина : '*** - [ChatViewController changeButtonImage]: непризнанные селектор направлен например 0x119570'

вот мой код ..

UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(5,0,310,44)]; 
UIBarButtonItem *changeImagebtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemOrganize 
                        target:self 
                        action:@selector(changeButtonImage)]; 




    UIBarButtonItem *flexItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace 
                       target:nil 
                       action:nil]; 

    UIBarButtonItem *textField = [[UIBarButtonItem alloc] initWithCustomView:peerName]; 

    NSArray *items = [NSArray arrayWithObjects:textField,flexItem,flexItem,changeImagebtn,nil]; 
    [toolBar setItems:items animated:NO]; 
[self.view addSubview:toolBar]; 

Мой блок действие ----

-(void)changeButtonImage:(id)sender 
{ 
    UIImagePickerController *pic=[[UIImagePickerController alloc] init]; 
    pick=pic; 
    pick.delegate=self; 

    pick.sourceType=UIImagePickerControllerSourceTypePhotoLibrary; 
    [self presentModalViewController:pick animated:YES]; 
} 

, где я не прав, пожалуйста предложить мне ...

+0

Ваш метод Определение принимает аргумент типа id, но когда вы вызываете метод, который вы не даете аргументам, а также проверяйте, должен ли вы объявить метод в вашем .h-файле. – raaz

ответ

1

Вместо

action:@selector(changeButtonImage) 

он должен быть:

action:@selector(changeButtonImage:) 
+0

это действительно был случай! Спасибо .. – Ajayvictor007

0

Я бы сказал, что вместо того, чтобы:

-(void)changeButtonImage:(id)sender {} 

Вы бы Применение:

-(void)changeButtonImage {} 

Это работает прекрасно для меня в моих приложений, и вы не используете отправителя в коде метода в любом случае.

EDIT:, конечно, помните, что если вы собираетесь это сделать, то также измените свое определение в файле заголовка.

Смежные вопросы