2015-03-03 2 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){ 

    }]; 
} 

У меня также есть UIButton в моей Tableview клетке, так что я использовал [cell.retweetButton addTarget:self action:@selector(retweet:)forControlEvents:UIControlEventTouchUpInside];

Как я могу использовать мой idString в качестве аргумента для параметр метода с селектором?

+0

Селектор называется с помощью UIButton является своего рода '- (пустот): селектор (UIButton *) buttonReference'. Вы не можете извлечь из него 'NSString'. –

ответ

0

Если строка идентификатора отправляется из кнопки, измените параметр метода действия на 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" 
Смежные вопросы