控制没有到达选择器

时间:2010-06-30 10:58:57

标签: iphone

我在工具栏上放了一个按钮。但是当我按下那个按钮时,我的选择器没有被调用,应用程序崩溃,发出以下错误

由于未捕获的异常'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];
}

我哪里错了?请建议我......

2 个答案:

答案 0 :(得分:1)

而不是

action:@selector(changeButtonImage)

必须是:

action:@selector(changeButtonImage:)

答案 1 :(得分:0)

我会说而不是:

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

你会使用:

-(void)changeButtonImage {}

在我的应用中,这对我来说非常合适,而且您还没有在方法代码中使用发件人。

编辑:当然要记住,如果你打算这样做,那么也要在头文件中修改你的定义。