2013-07-25 35 views
-2

可以說我有10個按鈕。對於每個按鈕,我想傳遞一些文本...例如按鈕1,我的新按鈕2等....單擊按鈕時如何傳遞數據

我想要做的是在NSLog中打印此文本。

因此,我創建了一個方法,並將其傳遞給按鈕。但我沒有得到我怎麼能傳遞數據到它...

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

-(IBAction)btnSelected:(id)sender { 
    NSLog(@"btnSelected data is %@", sender); 
    // I want to print some text for respective button here...  
} 

但我沒有得到...任何想法如何做到這一點?

回答

-1

試試這個,

[myButton setAccessibilityValue:@"Some text"]; 
[myButton addTarget:self action:@selector(btnSelected:) forControlEvents:UIControlEventTouchUpInside]; 

-(IBAction)btnSelected:(id)sender { 
    NSLog(@"btnSelected data is %@", [sender accessibilityValue];); 
    // I want to print some text for respective button here...  
} 
+0

感謝一噸......經過9分鐘會接受的答案;) –

+3

這是非常錯誤的,在概念上。混淆UI的可訪問性選項?沒辦法... – 2013-07-25 15:11:15

+3

@ H2CO3我很想說這個答案給癌症... – Peres

2

您可以使用對象的數據關聯:

首先導入這個類:#import <objc/runtime.h>

然後創建一個鍵

static char * kIndexPathAssociationKeySTR = "associated_string_key"; 

那麼準字符串爲: **在這裏你可以關聯一個與按鈕類似數據的Y型:NSMutableArray的或的NSString etcetra **

NSString *myAttachedValue = @"This is the info I am associating with button"; 
objc_setAssociatedObject(self.testBtn, 
         kIndexPathAssociationKeySTR, 
         myAttachedValue, 
         OBJC_ASSOCIATION_RETAIN); 

然後訪問它在你的方法,你的按鈕事件稱爲:

希望它可以幫助你。該按鈕

[myButton addTarget:self action:@selector(btnSelected:) forControlEvents:UIControlEventTouchUpInside]; 
myButton.tag = 1; 

相關問題