0

我正在使用自己的图像创建一个自定义按钮,并将其分配给我拥有的导航控制器的 rightbarbutton。问题是当用户单击按钮时,我得到一个关于我的控制器无法识别该选择器的异常信息?

UIImage* image1 = [UIImage imageNamed:@"someImage.png"];
CGRect imgRect = CGRectMake(0, 0, image1.size.width/1.8, image1.size.height/1.8);
UIButton *myButton = [[UIButton alloc] initWithFrame:imgRect];
[myButton setBackgroundImage:image1 forState:UIControlStateNormal];
[myButton addTarget:self action:@selector(nextScreenButtonAction)   forControlEvents:UIControlEventTouchUpInside];


UIBarButtonItem *barButton =[[UIBarButtonItem alloc] initWithCustomView:myButton];
[self.navigationItem setRightBarButtonItem:myButton];
self.navigationController.navigationBarHidden = false;
4

2 回答 2

1

可能是这个问题nextScreenButtonAction改变它

[myButton addTarget:self action:@selector(nextScreenButtonAction:) forControlEvents:UIControlEventTouchUpInside]

在您的方法定义中,您要传递和参数,例如

-(IBAction) nextScreenButtonAction:(id)sender
{
} 

所以在 addTarget 你需要指定一个冒号(:) 来表示参数

于 2012-12-13T05:06:17.477 回答
0

针对以下代码,

[myButton addTarget:self action:@selector(nextScreenButtonAction) forControlEvents:UIControlEventTouchUpInside];

确保您在同一个类中具有创建方法,例如,

- (void) nextScreenButtonAction
{
   // 在这里写下你的逻辑...
}
于 2012-12-13T04:36:26.297 回答