我正在尝试将两个操作分配给一个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.
答案 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];
}