如何将方法与此按钮关联?

时间:2010-10-11 10:17:14

标签: objective-c cocoa-touch uibutton selector uinavigationitem

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

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

但它不起作用。

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

你还记得设定目标吗?如果所需方法属于同一个类,则可以执行以下操作:

[barButton setTarget:self];

尽管如此,actiontarget都是属性(Obj-C 2.0的新功能),请考虑使用点符号:

barButton.action = @selector(saveArray:)
barButton.target = self;