. Хорошим подходом для такого рода настроек является наличие протокола, включающего в себя сообщение клика, свойство делегирования идентификатора типа в представлении, содержащее кнопку и метод в том же представлении, который запускает делегированное сообщение таким образом [self .delegate clicked]. Событие TouchUpInside связано с этим методом в IB, и родительское представление задает себя как делегат subview и соответствует самому протоколу. Это может показаться немного сложным, но это определенно правильный способ сделать.
Протокол
@protocol viewWithButtonDelegate
-(void)buttonClicked:(UIButton*)button inView:(UIView*)view;
@end
в интерфейсе подвид
@interface viewWithButton {
...
id<viewWithButtonDelegate> delegate;
}
...
@property (nonatomic, retain) id<viewWithButtonDelegate> delegate
-(void)buttonClicked:(id)sender;
...
@end
в реализации подвид
-(void)buttonClicked:(id)sender {
if([sender class] == [UIButton class]) {
[self.delegate buttonClicked:(UIButton*)sender inView:self]
}
}
интерфейс контроллера объявлен как этот
@interface myController<viewWithButtonDelegate>
и, наконец, в реализации контроллера:
-(void)buttonClicked:(UIButton*)button inView:(UIView*)view {
//do something in response to button clicked
}
надеюсь, что это помогает ...
Я думаю, что было бы хорошей идеей, чтобы разместить соответствующий код вокруг аварии. – DarkDust
Сбой при запуске метода. Метод пуст, я хотел бы знать, что лучше для этого, а не для конкретного кода. Спасибо – Skeep
Любая установка возможна. Сбои являются специфическими для кода. –