一般情况下,使用到UIButton,都会用到其对象方法:addTarget方法。细心的朋友可能发现,这个方法不能传递参数。当我们需要为UIButton注册单击事件的时候,如果此时需要传递多个参数,addTarget又不能用,该如何解决呢?
比如我要给UIButton注册下面的单击方法A,但是此方法有2个参数,使用addTarget方法是做不到的。
- (void)dataWithName: (NSString *)pictureName andPictureCount: (int)count
解决办法就是,再写一个没有参数的方法B,在B中传递参数,如下所示:
- (void)clickShowLoveButton {
[self dataWithName:@"showLove" andPictureCount:67];
}
现在,我们已经把一个需要传递参数的方法A,封装到一个不需要传递参数的方法B中。此时为UIButton注册单击事件,只需要使用addTarget方法调用B方法即可,如下:
[self.btnShowLove addTarget:selfaction:@selector(clickShowLoveButton) forControlEvents:UIControlEventTouchUpInside];
这样,我们就轻松解决题目的问题了。
网友评论