Доступ к методам отправителя из другого класса - PullRequest
0 голосов
/ 01 марта 2012

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

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

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

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

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

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

1 Ответ

2 голосов
/ 01 марта 2012

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

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

[(MyViewSubclass *)[sender superview] updateButtonImageWithImage:image];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...