Я думаю, что в двух решений, если вид является многоразовым
1- Добавить селекторы в UIView
подкласса и определяют где делегат должен заботиться о действиях в представлении.
Заголовок файла
@protocol SubviewActionDelegate
@optional
- (void)button1Selected;
@end
@interface Subview: UIView
@property (nonatomic, weak) id<SubviewActionDelegate> delegate
@end
файл Реализация
[self.button1 addTarget:self action:@selector(buttonSelected:) forControlEvents:UIControlEventTouchUpInside];
...
- (IBAction)buttonSelected:(UIButton *)sender {
if(self.delegate respondsToSelector:@selector(button1Selected)) {
[self.delegate button1Selected];
}
}
Класс, который добавляет этот многоразовый вид, как подтаблицы должны реализовать этот делегат и определить себя в качестве делегата.
2- Добавить селекторы в том же UIView
или UIViewcontroller
что добавить Ваше мнение, как подвид.
Subview *view = [Subview alloc]initWithFrame:CGRectZero];
view.button1 addTarget:self action:@selector(buttonSelected:) forControlEvents:UIControlEventTouchUpInside];
...
- (void)buttonSelected:(id)sender{
NSLog(@"Button selected");
}
Теперь, если у вас есть более чем одна из этих многоразовых взглядов в том же UIViewController
или UIView
контейнер (как UITableViewCell
), вы можете определить, какое представление является тот, который вы ищете, установив вид или кнопку tag
стоимость.
[subview.button1 setTag:someValue];
...
- (void)buttonSelected:(UIButton *)sender{
if(sender.tag == someValue) {
//do something
} else {
//do something else
}
Надеется, что это помогает