Достъп до методи на подател от друг клас

Имам 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