Я пытаюсь назначить метод делегата для UIButton, используя addTarget:action:forControlEvents:
. Все компилируется без предупреждений, IBOutlet подключен к кнопке в Interface Bulder (XCode 4). Если я перемещаю метод делегата в контроллер, он работает нормально. (Весь код работал нормально, но я реорганизовал использование делегата, это моя первая попытка использования делегатов и протоколов.)
(добавлено) Объявление протокола, помещаемое перед @interface в .h:
@protocol MMGLVDelegate<NSObject>
-(void)receiveQuitRequest:(id)sender;
@end
В интерфейсе контроллера эти свойства:
@property (nonatomic, assign) id<TheDelegateProtocol> delegate;
@property (nonatomic, retain) IBOutlet UIButton *quitBtn;
В реализации контроллера:
-(void)setDelegate:(id<MMGLVDelegate>)delegate {
DLog(@"MMGLVSegmented setDelegate: Entered");
_delegate = delegate;
[self.quitBtn addTarget:self.delegate action:@selector(receiveQuitRequest:)
forControlEvents:UIControlEventTouchUpInside];
}
Любая помощь приветствуется. Изменение цели на любое из self.delegate, _delegate или делегата не меняет поведение приложения.
То, что я надеюсь сделать, это не обязательно объявлять класс receiveQuitRequest: он затем передается делегату, я бы лучше пошел прямо к делегату из элемента управления.