Вот оно: я работаю с устаревшим кодом.Так что я не могу реально (реально) изменить архитектуру на данном этапе.
У меня есть один файл, который создает массив строк, в VC1
:
NSMutableArray *arrButtons = [NSMutableArray array];
[arrButtons addObject:data];
[arrButtons addObject:share];
[VC2 showButtons:arrButtons];
Затем в моем коде VC2
у меня есть:
-(void)showButtons:(NSMutableArray *)arrButtons {
for (int i=0; i<arrButtons.count; i++) {
UIButton *btn = [_popupView viewWithTag:i+5000];
[btn setTitle:[arrButtons objectAtIndex:i] forState:UIControlStateNormal];
//this is the code I am trying out, I just need to addtarget to data, not the rest of the array.
if ([arrButtons containsObject:data]) {
//this is adding to all buttons, not just data. Figure out a way to add this action to only data.
btn.[index: data]
[btn addTarget:self action:@selector(arrayButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
}
}
Имеет смысл просто добавить цель в VC1
, когда мы впервые добавим ее в массив.НО я не могу, потому что, когда он создается, это просто строка.Я хотел бы отметить, что кнопка DOES появляется на экране.Но я не знаю, как получить доступ к этой конкретной кнопке в массиве, чтобы добавить к ней цель.
Лучшее решение, которое я могу придумать, заключается в том, что мне нужно addTarget
, но если у кого-то еще есть какие-либо указания или идеи о том, как что-то подобное можно решить, я был бы очень признателен.
ps Я знаю, как подключить IBActions от IB, проблема в том, что это кнопка, созданная на 100% программным способом, и при создании это действительно просто строка, а не кнопка.Так что addTarget
недоступен.