一个BarButtonItem的多个操作

时间:2014-03-26 11:37:04

标签: ios uinavigationcontroller uibarbuttonitem

我正在尝试将两个操作分配给一个BarButtonItem,但我的语法(bad receiver type 'NSInteger' aka 'long')有问题,我无法编译我的应用程序。这是错误的代码:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] 
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(myAction1)];
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(myAction2)];

我正在使用Xcode 5.1,我的目标是iOS 7.0.

你能帮帮我吗?提前谢谢。

3 个答案:

答案 0 :(得分:2)

您无法为BarButtonItem分配两个操作。

您可以使用selector方法调用第二个操作。

或者您可以简单地删除以前的目标,并在运行时有条件地添加新的target action

答案 1 :(得分:1)

您无法向UIBarButtonItem添加多个目标/操作。

您可以添加一个带有一个目标/操作的小节按钮项目,如下所示:

UIBarButtonItem *myBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(myAction1)];
self.navigationItem.leftBarButtonItem = myBarButtonItem;

然后你需要做一些事情,比如从指定的方法中调用第二种方法,或者适合你情况的任何方法。

答案 2 :(得分:0)

那真的是你的代码吗?

initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(myAction2)];

不是那里的失踪者?

也是一个UIBarButtonItem只能有一个目标,如果你想要两个动作被调用,创建第三个将调用另外两个

- (IBAction)myAction3:(id)sender {
  [self myAction1:sender];
  [self myAction2:sender];
}