2013-08-29 4 views
2

У меня возникли проблемы с доступом к IBOutlet. В классе AI есть Scrollview кто есть делегат устанавливается как класс B.Доступ к IBOutlet из делегата другого класса

Класс A Header

@property(nonatomic, strong) ClassB *B; 

класса A Реализация

self.B = [[ClassB alloc] init]; 

[_scrollview setDelegate:self.B]; 

Теперь Scrollview осуществляется вызов scrollViewDidScroll сделал прокручивать правильно ClassB

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 

Но я не могу получить доступ к каким-либо IBOutlets, объявленным в ClassB из scrollViewDidScroll. Они просто возвращают нуль.

+0

Как вы пытаетесь получить доступ к IBOutlets? – Firo

+1

'self.A = [[ClassB alloc] init];' что? Я думаю, что 'A' должен быть' B'? – trojanfoe

ответ

0

Это потому, что вы объявили это свойство как класс A в своем заголовке. Изменение ниже строки в ClassA.h

@property(nonatomic, strong) ClassA *A; 

с этой линией.

@property(nonatomic, strong) ClassB *A; 
0

Вы создаете свой делегат объект (B) в классе А. Это будет работать, но, вероятно, вы не получите выходы. Поскольку делегат и объект, к которому вы подключили выходы, будут двумя разными экземплярами класса classB. Так что вам нужно сделать делегат из класса A (как self) перед тем, как перейти в класс B.

Смежные вопросы