2016-10-13 2 views
1

В моем коде я должен передать два аргумента targetMethod printMethod, я могу передать button.tag как один аргумент и как передать другой аргумент?Как передать два аргумента в целевой метод UIButtons в iOS?

Приведите пример.

Мой код:

button.tag = indexPath.row; 
secondArgument = indexPath.section; 
[button addTarget:self action:@selector(printMethod:) forControlEvents:UIControlEventTouchUpInside]; 

-(IBAction)printMethod:(UIButton*)sender{ 
    NSLog(@"%d%d",sender.tag,//SecondArgument); 
} 
+1

Вы не можете. Что вы можете сделать, это подкласс UIButton и дать ему свойства (indexPath, otherDataToShare). – Larme

+0

Метод IBAction принимает только один аргумент; отправитель – Paulw11

+0

Какой у вас второй аргумент? –

ответ

1

Если вы хотите indexPath на действие кнопки, попробуйте что-то вроде этого.

-(IBAction)printMethod:(UIButton*)sender{ 

    CGPoint point = [sender.superview convertPoint:sender.center toView:self.tableView]; 
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:point]; 
    if (indexPath) { 
      NSLog(@"Section - %ld Row - %ld",deleteIndexPath.section, deleteIndexPath.row); 
    } 
} 
+0

, но комментарий Arpit B Parekh лучше вашего ответа, где вы даже можете передавать объекты в качестве аргументов; –

+1

@AMIamitekh Я никогда не пробовал этот подход, поэтому не знаю об этом. –

1

Просто подкласс UIButton и добавить свойства в тот класс, который вы хотите передать в качестве параметра.

, то вы можете оценить его, используя эту кнопку. например,

#import <UIKit/UIKit.h> 

@interface CustomFileCapturebutton : UIButton 

@property int maxNumberOfFilesAllow; 
@property NSString *fileType; 

@end 

затем создать экземпляр CustomFileCapturebutton и создать действие что-то вроде,

-(void)captureClick : (CustomFileCapturebutton*)sender{ 

    // you can use your properties here like 



    NSLog (@"%@",sender.fileType); 

} 

вы можете установить, что свойства в то время, когда вы addtarget на кнопку, как,

CustomFileCapturebutton *btn = [[CustomFileCapturebutton alloc]init]; 

    btn.frame = yourFrame; 

    [btn addTarget:self action:@selector(captureClick:) forControlEvents:UIControlEventTouchUpInside]; 

    btn.fileType = @"png"; // set properties here 
1

Попробуйте accessibilityIdentifier для прохода второго аргумента кнопки

button.accessibilityIdentifier = [NSString stringWithFormat:@"%d",indexPath.section)]; 

 Смежные вопросы

  • Нет связанных вопросов^_^