У меня есть UIButton в UITableViewCell ... Я хочу выполнить действие на UIButton ..
Мне нужно отправить данные в метод @selector, зарегистрированный для этой кнопки, чтобы я могвыполнять действия, когда пользователь нажимает эту кнопку.
Как это сделать, хотя я обнаружил, что параметр (id) sender
внутри функции выбора не всегда является исходной кнопкой, созданной в функции cellForRowAtIndexPath
.
Внутри функции cellForRowAtIndexPath
:
UIImage* pdfImage = [UIImage imageNamed:@"icon_pdf.png"];
UIButton* pdfButton = [UIButton buttonWithType:UIButtonTypeCustom];
[pdfButton setImage:pdfImage forState:UIControlStateNormal];
pdfButton.accessibilityHint = @"path/to/pdf/file";
pdfButton.frame = CGRectMake(0, 0, 40, 40);
[pdfButton addTarget:self action:@selector(openUrlInBrowser:) forControlEvents:UIControlEventTouchUpInside];
cell.accessoryView = pdfButton;
Вот функция отправителя:
-(void) openUrlInBrowser:(id)sender
{
NSLog(@"%@", [sender class]);
NSString * url=[sender accessibilityHint];
NSLog(@"%@",url);
NSLog(@"%@",sender);
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:url]];
}