我有一个导航栏按钮,可以显示图像和文本。这是代码:
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)];
但它不起作用。
答案 0 :(得分:3)
请记住,您还必须指定目标。您可以将操作/目标设置为UIButton对象本身:
[saveButton addTarget:target action:@selector(saveArray) forControlEvents:UIControlEventTouchUpInside];
我已经尝试直接将目标/操作设置为UIBarButtonItem但是出于某种原因,在UIButton的情况下,它似乎不适用于自定义视图。
答案 1 :(得分:0)
你还记得设定目标吗?如果所需方法属于同一个类,则可以执行以下操作:
[barButton setTarget:self];
尽管如此,action
和target
都是属性(Obj-C 2.0的新功能),请考虑使用点符号:
barButton.action = @selector(saveArray:)
barButton.target = self;