在iOS中的按钮传值

在iOS中的按钮能传值吗?

一般可以用打tag的方法来传值:

[button addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];[button setTag:100];

//下面是action方法

-(void)action:(UIButton *)sender{

//sender就是UIButton,因此通过sender.tag就可以拿到刚才的参数

int i = [sender tag];

}

但是有没有更好的解决方法呢:

利用object-c的runtime特性,

#import<objc/runtime.h>

[button addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];

//RunTime 传值 将需要传的值放到@"需要传的值"这个位置

objc_setAssociatedObject(button, @"key",@"需要传的值", OBJC_ASSOCIATION_RETAIN_NONATOMIC);

-(void)action:(UIButton *)button

{

//获取到通过runtime传过来的值

NSString *str =objc_getAssociatedObject(button, @"key");

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容