Iphone 无法将参数传递到@selector方法?
我目前正在尝试使用一个名为X的UIButton从视图中删除精灵 基本上,我的代码是这样工作的:当触摸一个精灵时,会向代理视图控制器发送一条消息,该消息会传递已选择的精灵*精灵。在这个方法中,我在精灵的顶部绘制一个UIButton。到目前为止,一切顺利 但是,问题是我现在希望我的UIButton在按下按钮时运行@selector来删除该精灵 最初我试过这样做:Iphone 无法将参数传递到@selector方法?,iphone,ios,xcode,ipad,Iphone,Ios,Xcode,Ipad,我目前正在尝试使用一个名为X的UIButton从视图中删除精灵 基本上,我的代码是这样工作的:当触摸一个精灵时,会向代理视图控制器发送一条消息,该消息会传递已选择的精灵*精灵。在这个方法中,我在精灵的顶部绘制一个UIButton。到目前为止,一切顺利 但是,问题是我现在希望我的UIButton在按下按钮时运行@selector来删除该精灵 最初我试过这样做: -(void)spriteSelected:(Sprite *)sprite{ //delegate method implementat
-(void)spriteSelected:(Sprite *)sprite{ //delegate method implementation
[sprite.button addTarget:self action:@selector(removeSprite:sprite) forControlEvents: UIControlEventTouchDown]
}
-(void)removeSprite:(Sprite *)sprite{
[sprite removeFromSuperView];}
然而,似乎我不能像那样将参数放入选择器。有什么办法可以调整吗
谢谢您应该在Sprite类中执行此操作,因此在原始类中:
-(void)spriteSelected:(Sprite *)sprite{
[sprite youAreSelected];
}
在“精灵”类中:
选择器只是一个方法标识符,而不是方法的调用,因此不能像方法调用一样包含参数 通常的管理方式是让视图控制器查看被触摸的按钮,找出它与哪个精灵关联,然后移除精灵。可能是视图控制器将精灵和按钮放在了视图的第一位,因此它应该具有所需的所有信息。您好,请查看此链接
-(void)youAreSelected {
[self.button addTarget:self action:@selector(removeMe:) forControlEvents: UIControlEventTouchDown];
}
-(void)removeMe:(id)sender {
[self removeFromSuperView];
}