在iOS中的按鈕傳值

在iOS中的按鈕能傳值嗎?

一般可以用打tag的方法來傳值:

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

//下面是action方法

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

//sender就是UIButton,因此通過sender.tag就可以拿到剛才的參數(shù)

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

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容