2015-03-03 61 views
0

我有這樣的方法:UIButton的目標:操作:選擇參數

- (void)retweet:(NSString *)idString { 
    STTwitterAPI *twitter; 
    [twitter postStatusRetweetWithID:idString successBlock:^(NSDictionary *status) { 
     UIAlertView *retweetSuccess = [[UIAlertView alloc]initWithTitle:@"Retweeted!" message:@"You have retweeted this tweet." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
     [retweetSuccess show]; 

    } errorBlock:^(NSError *error){ 

    }]; 
} 

我也有我的tableview細胞的UIButton所以我用[cell.retweetButton addTarget:self action:@selector(retweet:)forControlEvents:UIControlEventTouchUpInside];

我如何用我的idString作爲參數方法參數與選擇器?

+0

通過的UIButton稱爲選擇是一種'的 - (空)選擇:(UIButton的*)buttonReference'。你不能從中檢索一個'NSString'。 – 2015-03-03 13:26:26

回答

0

如果id字符串來自按鈕,則將您的操作方法參數更改爲paramButton並對其進行訪問。 如果來自其他地方,那麼你需要從它來自的任何地方簡單地得到它。

在任何情況下,您的操作方法必須具有:(UIButon *)paramButton參數。 ((id)發件人也可以作爲替代)。

0

使用objective c associated objects

#import <objc/runtime.h> 

static const void *idStringKey = &idStringKey; 

@implementation UIButton (idString) 

- (void)setIDString:(NSString *)idString 
{ 
    objc_setAssociatedObject(self, idStringKey, idString, OBJC_ASSOCIATION_COPY_NONATOMIC); 
} 

- (NSString *)idString 
{ 
    return objc_getAssociatedObject(self, idStringKey); 
} 

@end 

使用

cell.retweetButton.idString = @"Any string here"