开发者

control not reaching to selector

开发者 https://www.devze.com 2023-01-05 09:30 出处:网络
I have put a button over a toolbar.But when i press that button,my selector is not called and application crashes giving following error

I have put a button over a toolbar.But when i press that button,my selector is not called and application crashes giving following error

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[ChatViewController changeButtonImage]: unrecognized selector sent to instance 0x119570'

here is my code..

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];

My action block is ----

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

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

where am i wrong?Please suggest me...


Instead of

action:@selector(changeButtonImage)

it must be:

action:@selector(changeButtonImage:)


I would have said that instead of:

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

You would use:

-(void)changeButtonImage {}

That works perfectly fine for me in my apps and you're not using the sender in your method code anyway.

EDIT : of course remember that if you were going to do this then also amend your definition in the header file.

0

精彩评论

暂无评论...
验证码 换一张
取 消