我正在尝试子类UIBarButtonItem
化以添加一些特殊功能。我需要barButtonItem
在触摸时切换其外观,因此我试图覆盖performSelector:
.
当我使用下面的代码时,我得到一个EXC_BAD_ACCESS (code=2 ...)
-(id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2
{
// Do something
return [super performSelector:aSelector withObject:object1 withObject:object2];
}
我的猜测是,我要么错误地尝试覆盖performSelector:
(还有其他方法吗?),要么错误地在super
.
在寻找解决方案 3 多个小时后,我一无所获。任何帮助是极大的赞赏。
更新: 以下作品:
@implementation CustomBarButtonItem
- (void)setTarget:(id)target
{
_realTarget = target;
super.target = self;
}
- (void)setAction:(SEL)action
{
_realAction = action;
super.action = @selector(pressed);
}
- (void)pressed
{
[self doCustom]; // implement this somewhere
[_realTarget performSelector:_realAction withObject:nil afterDelay:0];
}
不幸的是,我想通过设置有时只能customView
在外观和正常外观之间切换。但这是一个完全不同的问题。谢谢大家。UIBarButtonItem
self.customView = nil
我会再等一会儿再选择一个最佳答案,看看是否有更好的解决方案。