在iOS中的按钮传值

2017-02-13  本文已影响0人  CasouV

在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");

}

上一篇 下一篇

猜你喜欢

热点阅读