0

我有一个显示图像和文本的导航栏按钮。这是代码:

UIImage *saveImage = [UIImage imageNamed:@"star.png"];

UIButton *saveButton = [UIButton buttonWithType:UIButtonTypeCustom];

[saveButton setBackgroundImage:saveImage forState:UIControlStateNormal];
[saveButton setTitle:@"Save" forState:UIControlStateNormal];

saveButton.frame = (CGRect) {
    .size.width = 100,
    .size.height = 30,
};

UIBarButtonItem *barButton= [[UIBarButtonItem alloc] initWithCustomView:saveButton];

[self.navigationItem setRightBarButtonItem:barButton animated:YES];

我试过这个

[barButton setAction:@selector(saveArray)];

但它不起作用。

4

2 回答 2

3

请记住,您还必须指定目标。您可以将操作/目标设置为 UIButton 对象本身:

[saveButton addTarget:target action:@selector(saveArray) forControlEvents:UIControlEventTouchUpInside];

我尝试直接将目标/操作设置为 UIBarButtonItem 但由于某种原因,在 UIButton 用于自定义视图的情况下它似乎不起作用。

于 2010-10-11T10:44:12.593 回答
0

你记得设定目标吗?如果所需的方法属于同一个类,你可以这样做:

[barButton setTarget:self];

也就是说,action并且target都是属性(Obj-C 2.0 的新特性),请考虑使用点表示法:

barButton.action = @selector(saveArray:)
barButton.target = self;
于 2010-10-11T10:39:33.783 回答