Доступ к методам отправителя из другого класса

У меня есть 2 класса, ClassA и ClassB

ClassA вызывает метод ClassB: - (void)someMethod:(id)sender

в приведенном выше методе мне нужно захватить отправителя из ClassB (отправитель является подклассом UIView, на котором есть UIButton) и обновить изображение кнопки, используя что-то вроде строк [sender updateButtonImageWithImage:image]

(подкласс UIView имеет метод: - (void)updateButtonImageWithImage:(UIImage *))

но всякий раз, когда я вызываю это из ClassB, приложение вылетает с нераспознанным селектором [UIButton updateButtonImageWithImage:] бла-бла-бла.

Что я делаю неправильно?


person user1241570    schedule 01.03.2012    source источник


Ответы (1)


отправитель является подклассом UIView, на котором есть UIButton

Это неверно: если кнопка вызывает -someMethod:, то кнопка, а не представление, содержащее ее, является sender, которое передается в -someMethod:. Самый простой способ сделать это — взять суперпредставление кнопки (которое должно быть вашим подклассом представления), а затем вызвать для него -updateButtonImageWithImage::

[(MyViewSubclass *)[sender superview] updateButtonImageWithImage:image];
person Noah Witherspoon    schedule 01.03.2012